private static void MoveCasesAndDelete(IWorkflowNodeEntity node, Locator?locator) { if (node.CaseActivities().Any()) { if (locator !.HasReplacement(node.ToLite())) { var replacement = locator.GetReplacement(node.ToLite()) !; node.CaseActivities() .Where(a => a.State == CaseActivityState.Done) .UnsafeUpdate() .Set(ca => ca.WorkflowActivity, ca => replacement) .Execute(); var running = node.CaseActivities().Where(a => a.State == CaseActivityState.Pending).ToList(); running.ForEach(a => { a.Notifications().UnsafeDelete(); a.WorkflowActivity = replacement; a.Save(); CaseActivityLogic.InsertCaseActivityNotifications(a); }); } else { DeleteCaseActivities(node, a => true); } }
public EntityPackWorkflow GetEntity(string caseActivityId) { var lite = Lite.ParsePrimaryKey <CaseActivityEntity>(caseActivityId); var activity = CaseActivityLogic.RetrieveForViewing(lite); using (WorkflowActivityInfo.Scope(new WorkflowActivityInfo { CaseActivity = activity })) { var ep = SignumServer.GetEntityPack((Entity)activity.Case.MainEntity); return(new EntityPackWorkflow { activity = activity, canExecuteActivity = OperationLogic.ServiceCanExecute(activity).ToDictionary(a => a.Key.Key, a => a.Value), canExecuteMainEntity = ep.canExecute, Extension = ep.extension, }); } }
public static void Start(SchemaBuilder sb, DynamicQueryManager dqm, Func <WorkflowConfigurationEmbedded> getConfiguration) { WorkflowLogic.Start(sb, dqm, getConfiguration); CaseActivityLogic.Start(sb, dqm); WorkflowEventTaskLogic.Start(sb, dqm); }
public static void Start(SchemaBuilder sb, Func <WorkflowConfigurationEmbedded> getConfiguration) { WorkflowLogic.Start(sb, getConfiguration); CaseActivityLogic.Start(sb); WorkflowEventTaskLogic.Start(sb); }