Page Identifiers in OnAttachmentImportExpression
This commit is contained in:
@@ -117,7 +117,7 @@ namespace Disco.Services.Documents.AttachmentImport
|
|||||||
msBuilder.Position = 0;
|
msBuilder.Position = 0;
|
||||||
using (var attachmentThumbnail = documentPageFirst.GetAttachmentThumbnail())
|
using (var attachmentThumbnail = documentPageFirst.GetAttachmentThumbnail())
|
||||||
{
|
{
|
||||||
documentPageFirst.Identifier.ImportPdfAttachment(Database, msBuilder, attachmentThumbnail);
|
documentPageFirst.Identifier.ImportPdfAttachment(Database, msBuilder, attachmentThumbnail, documentPages.Select(p => p.Identifier).ToList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -175,16 +175,21 @@ namespace Disco.Services.Documents.AttachmentImport
|
|||||||
{
|
{
|
||||||
using (var pdfStream = File.OpenRead(PdfFilename))
|
using (var pdfStream = File.OpenRead(PdfFilename))
|
||||||
{
|
{
|
||||||
return ImportPdfAttachment(Identifier, Database, pdfStream, Thumbnail);
|
return ImportPdfAttachment(Identifier, Database, pdfStream, Thumbnail, new List<DocumentUniqueIdentifier>() { Identifier });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool ImportPdfAttachment(this DocumentUniqueIdentifier Identifier, DiscoDataContext Database, Stream PdfContent)
|
public static bool ImportPdfAttachment(this DocumentUniqueIdentifier Identifier, DiscoDataContext Database, Stream PdfContent)
|
||||||
{
|
{
|
||||||
return ImportPdfAttachment(Identifier, Database, PdfContent, null);
|
return ImportPdfAttachment(Identifier, Database, PdfContent, null, new List<DocumentUniqueIdentifier>() { Identifier });
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool ImportPdfAttachment(this DocumentUniqueIdentifier Identifier, DiscoDataContext Database, Stream PdfContent, Image Thumbnail)
|
public static bool ImportPdfAttachment(this DocumentUniqueIdentifier Identifier, DiscoDataContext Database, Stream PdfContent, Image Thumbnail)
|
||||||
|
{
|
||||||
|
return ImportPdfAttachment(Identifier, Database, PdfContent, Thumbnail, new List<DocumentUniqueIdentifier>() { Identifier });
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool ImportPdfAttachment(this DocumentUniqueIdentifier Identifier, DiscoDataContext Database, Stream PdfContent, Image Thumbnail, List<DocumentUniqueIdentifier> PageIdentifiers)
|
||||||
{
|
{
|
||||||
string filename;
|
string filename;
|
||||||
string comments;
|
string comments;
|
||||||
@@ -230,7 +235,7 @@ namespace Disco.Services.Documents.AttachmentImport
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var expressionResult = Identifier.DocumentTemplate.EvaluateOnAttachmentImportExpression(attachment, Database, creatorUser, Identifier.TimeStamp);
|
var expressionResult = Identifier.DocumentTemplate.EvaluateOnAttachmentImportExpression(attachment, Database, creatorUser, Identifier.TimeStamp, PageIdentifiers);
|
||||||
DocumentsLog.LogImportAttachmentExpressionEvaluated(Identifier.DocumentTemplate, Identifier.Target, attachment, expressionResult);
|
DocumentsLog.LogImportAttachmentExpressionEvaluated(Identifier.DocumentTemplate, Identifier.Target, attachment, expressionResult);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
using Disco.Data.Repository;
|
using Disco.Data.Repository;
|
||||||
using Disco.Models.Repository;
|
using Disco.Models.Repository;
|
||||||
using Disco.Models.Services.Documents;
|
using Disco.Models.Services.Documents;
|
||||||
|
using Disco.Services.Documents;
|
||||||
using Disco.Services.Expressions;
|
using Disco.Services.Expressions;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Disco.Services
|
namespace Disco.Services
|
||||||
{
|
{
|
||||||
@@ -57,12 +60,13 @@ namespace Disco.Services
|
|||||||
ExpressionCache.InvalidateKey("DocumentTemplate_OnImportExpression", dt.Id);
|
ExpressionCache.InvalidateKey("DocumentTemplate_OnImportExpression", dt.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string EvaluateOnAttachmentImportExpression(this DocumentTemplate dt, object Data, DiscoDataContext Database, User User, DateTime TimeStamp)
|
public static string EvaluateOnAttachmentImportExpression(this DocumentTemplate dt, object Data, DiscoDataContext Database, User User, DateTime TimeStamp, List<DocumentUniqueIdentifier> PageIdentifiers)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(dt.OnImportAttachmentExpression))
|
if (!string.IsNullOrEmpty(dt.OnImportAttachmentExpression))
|
||||||
{
|
{
|
||||||
Expression compiledExpression = dt.OnImportAttachmentExpressionFromCache();
|
Expression compiledExpression = dt.OnImportAttachmentExpressionFromCache();
|
||||||
System.Collections.IDictionary evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, null);
|
IDictionary evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, null);
|
||||||
|
evaluatorVariables.Add("PageIdentifiers", PageIdentifiers);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
object result = compiledExpression.EvaluateFirst<object>(Data, evaluatorVariables);
|
object result = compiledExpression.EvaluateFirst<object>(Data, evaluatorVariables);
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ namespace Disco.Services.Expressions
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDictionary StandardVariables(DocumentTemplate AttachmentType, DiscoDataContext Database, User User, System.DateTime TimeStamp, DocumentState DocumentState)
|
public static IDictionary StandardVariables(DocumentTemplate AttachmentType, DiscoDataContext Database, User User, DateTime TimeStamp, DocumentState DocumentState)
|
||||||
{
|
{
|
||||||
return new Hashtable
|
return new Hashtable
|
||||||
{
|
{
|
||||||
@@ -221,7 +221,7 @@ namespace Disco.Services.Expressions
|
|||||||
|
|
||||||
{
|
{
|
||||||
"#TimeStamp",
|
"#TimeStamp",
|
||||||
typeof(System.DateTime).AssemblyQualifiedName
|
typeof(DateTime).AssemblyQualifiedName
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user