Example #1
0
        public static void Register(ProcessAlgorithmSymbol processAlgorithm, IProcessAlgorithm algorithm)
        {
            if (processAlgorithm == null)
            {
                throw AutoInitAttribute.ArgumentNullException(typeof(ProcessAlgorithmSymbol), nameof(processAlgorithm));
            }

            if (algorithm == null)
            {
                throw new ArgumentNullException(nameof(algorithm));
            }

            registeredProcesses.Add(processAlgorithm, algorithm);
        }
Example #2
0
        public static ProcessEntity Create(this ProcessAlgorithmSymbol process, IProcessDataEntity processData, Entity copyMixinsFrom = null)
        {
            using (OperationLogic.AllowSave <ProcessEntity>())
            {
                var result = new ProcessEntity(process)
                {
                    State           = ProcessState.Created,
                    Data            = processData,
                    MachineName     = JustMyProcesses ? Environment.MachineName : ProcessEntity.None,
                    ApplicationName = JustMyProcesses ? Schema.Current.ApplicationName : ProcessEntity.None,
                    User            = UserHolder.Current.ToLite(),
                };

                if (copyMixinsFrom != null)
                {
                    process.CopyMixinsFrom(copyMixinsFrom);
                }

                return(result.Save());
            }
        }
Example #3
0
 public ProcessEntity(ProcessAlgorithmSymbol process)
 {
     this.Algorithm = process;
 }
Example #4
0
 public static ProcessEntity?LastProcess(this ProcessAlgorithmSymbol p) =>
 As.Expression(() => p.Processes().OrderByDescending(a => a.ExecutionStart).FirstOrDefault());
Example #5
0
 public static IQueryable <ProcessEntity> Processes(this ProcessAlgorithmSymbol p) =>
 As.Expression(() => Database.Query <ProcessEntity>().Where(a => a.Algorithm == p));
Example #6
0
 public static ProcessEntity LastProcess(this ProcessAlgorithmSymbol p)
 {
     return(LastProcessFromAlgorithmExpression.Evaluate(p));
 }
Example #7
0
 public static IQueryable <ProcessEntity> Processes(this ProcessAlgorithmSymbol p)
 {
     return(ProcessesFromAlgorithmExpression.Evaluate(p));
 }
Example #8
0
 public static IProcessAlgorithm GetProcessAlgorithm(ProcessAlgorithmSymbol processAlgorithm)
 {
     return(registeredProcesses.GetOrThrow(processAlgorithm, "The process algorithm {0} is not registered"));
 }
Example #9
0
 public static void Register(ProcessAlgorithmSymbol processAlgorithm, Action <ExecutingProcess> action) =>
 Register(processAlgorithm, new ActionProcessAlgorithm(action));