feature: expose custom details to expressions
custom details can now be easily retrieved from any expression
This commit is contained in:
@@ -235,7 +235,7 @@ namespace Disco.Services.Documents.AttachmentImport
|
||||
{
|
||||
try
|
||||
{
|
||||
var expressionResult = Identifier.DocumentTemplate.EvaluateOnAttachmentImportExpression(attachment, Database, creatorUser, Identifier.TimeStamp, PageIdentifiers);
|
||||
var expressionResult = Identifier.DocumentTemplate.EvaluateOnAttachmentImportExpression(attachment, Identifier.Target, Database, creatorUser, Identifier.TimeStamp, PageIdentifiers);
|
||||
DocumentsLog.LogImportAttachmentExpressionEvaluated(Identifier.DocumentTemplate, Identifier.Target, attachment, expressionResult);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -22,12 +22,12 @@ namespace Disco.Services
|
||||
ExpressionCache.InvalidateKey("DocumentTemplate_FilterExpression", dt.Id);
|
||||
}
|
||||
|
||||
public static bool FilterExpressionMatches(this DocumentTemplate dt, object Data, DiscoDataContext Database, User User, System.DateTime TimeStamp, DocumentState State)
|
||||
public static bool FilterExpressionMatches(this DocumentTemplate dt, IAttachmentTarget Data, DiscoDataContext Database, User User, System.DateTime TimeStamp, DocumentState State)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(dt.FilterExpression))
|
||||
{
|
||||
var compiledExpression = dt.FilterExpressionFromCache();
|
||||
var evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, State);
|
||||
var evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, State, Data);
|
||||
try
|
||||
{
|
||||
var er = compiledExpression.EvaluateFirst<object>(Data, evaluatorVariables);
|
||||
@@ -59,12 +59,12 @@ namespace Disco.Services
|
||||
ExpressionCache.InvalidateKey("DocumentTemplate_OnImportExpression", dt.Id);
|
||||
}
|
||||
|
||||
public static string EvaluateOnAttachmentImportExpression(this DocumentTemplate dt, IAttachment Data, DiscoDataContext Database, User User, DateTime TimeStamp, List<DocumentUniqueIdentifier> PageIdentifiers)
|
||||
public static string EvaluateOnAttachmentImportExpression(this DocumentTemplate dt, IAttachment Data, IAttachmentTarget AttachmentTarget, DiscoDataContext Database, User User, DateTime TimeStamp, List<DocumentUniqueIdentifier> PageIdentifiers)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(dt.OnImportAttachmentExpression))
|
||||
{
|
||||
var compiledExpression = dt.OnImportAttachmentExpressionFromCache();
|
||||
var evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, null);
|
||||
var evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, null, AttachmentTarget);
|
||||
evaluatorVariables.Add("PageIdentifiers", PageIdentifiers);
|
||||
var result = compiledExpression.EvaluateFirst<object>(Data, evaluatorVariables);
|
||||
if (result == null)
|
||||
@@ -85,12 +85,12 @@ namespace Disco.Services
|
||||
ExpressionCache.InvalidateKey("DocumentTemplate_OnGenerateExpression", dt.Id);
|
||||
}
|
||||
|
||||
public static string EvaluateOnGenerateExpression(this DocumentTemplate dt, object Data, DiscoDataContext Database, User User, DateTime TimeStamp, DocumentState State)
|
||||
public static string EvaluateOnGenerateExpression(this DocumentTemplate dt, IAttachmentTarget Data, DiscoDataContext Database, User User, DateTime TimeStamp, DocumentState State)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(dt.OnGenerateExpression))
|
||||
{
|
||||
var compiledExpression = dt.OnGenerateExpressionFromCache();
|
||||
var evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, State);
|
||||
var evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, State, Data);
|
||||
|
||||
var result = compiledExpression.EvaluateFirst<object>(Data, evaluatorVariables);
|
||||
return result.ToString();
|
||||
|
||||
@@ -81,12 +81,12 @@ namespace Disco.Services
|
||||
ExpressionCache.InvalidateKey("DocumentTemplatePackage_FilterExpression", package.Id);
|
||||
}
|
||||
|
||||
public static bool FilterExpressionMatches(this DocumentTemplatePackage package, object Data, DiscoDataContext Database, User User, DateTime TimeStamp, DocumentState State)
|
||||
public static bool FilterExpressionMatches(this DocumentTemplatePackage package, IAttachmentTarget Data, DiscoDataContext Database, User User, DateTime TimeStamp, DocumentState State)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(package.FilterExpression))
|
||||
{
|
||||
var compiledExpression = package.FilterExpressionFromCache();
|
||||
var evaluatorVariables = Expression.StandardVariables(null, Database, User, TimeStamp, State);
|
||||
var evaluatorVariables = Expression.StandardVariables(null, Database, User, TimeStamp, State, Data);
|
||||
evaluatorVariables.Add("Package", package);
|
||||
try
|
||||
{
|
||||
@@ -119,12 +119,12 @@ namespace Disco.Services
|
||||
ExpressionCache.InvalidateKey("DocumentTemplatePackage_OnGenerateExpression", package.Id);
|
||||
}
|
||||
|
||||
public static string EvaluateOnGenerateExpression(this DocumentTemplatePackage package, object Data, DiscoDataContext Database, User User, DateTime TimeStamp, DocumentState State)
|
||||
public static string EvaluateOnGenerateExpression(this DocumentTemplatePackage package, IAttachmentTarget Data, DiscoDataContext Database, User User, DateTime TimeStamp, DocumentState State)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(package.OnGenerateExpression))
|
||||
{
|
||||
Expression compiledExpression = package.OnGenerateExpressionFromCache();
|
||||
System.Collections.IDictionary evaluatorVariables = Expression.StandardVariables(null, Database, User, TimeStamp, State);
|
||||
System.Collections.IDictionary evaluatorVariables = Expression.StandardVariables(null, Database, User, TimeStamp, State, Data);
|
||||
evaluatorVariables.Add("Package", package);
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user