Job Expressions

Expressions can be triggered when jobs are created and closed
This commit is contained in:
Gary Sharp
2016-11-09 22:26:43 +11:00
parent 065b14b158
commit b52cbcb94a
22 changed files with 902 additions and 41 deletions
+36
View File
@@ -3,9 +3,11 @@ using Disco.Models.Repository;
using Disco.Models.Services.Documents;
using Disco.Models.Services.Jobs.JobLists;
using Disco.Services.Authorization;
using Disco.Services.Expressions;
using Disco.Services.Interop.ActiveDirectory;
using Disco.Services.Plugins;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -383,5 +385,39 @@ namespace Disco.Services
return JobTypes;
}
#region Expressions
public static string EvaluateOnCreateExpression(this Job job, DiscoDataContext Database)
{
if (!string.IsNullOrEmpty(Database.DiscoConfiguration.JobPreferences.OnCreateExpression))
{
Expression compiledExpression = Jobs.Jobs.OnCreateExpressionFromCache(Database);
IDictionary evaluatorVariables = Expression.StandardVariables(null, Database, job.OpenedTechUser, DateTime.Now, null);
object result = compiledExpression.EvaluateFirst<object>(job, evaluatorVariables);
if (result == null)
return null;
else
return result.ToString();
}
return null;
}
public static string EvaluateOnCloseExpression(this Job job, DiscoDataContext Database)
{
if (!string.IsNullOrEmpty(Database.DiscoConfiguration.JobPreferences.OnCloseExpression))
{
Expression compiledExpression = Jobs.Jobs.OnCloseExpressionFromCache(Database);
IDictionary evaluatorVariables = Expression.StandardVariables(null, Database, job.OpenedTechUser, DateTime.Now, null);
object result = compiledExpression.EvaluateFirst<object>(job, evaluatorVariables);
if (result == null)
return null;
else
return result.ToString();
}
return null;
}
#endregion
}
}