Beispiel #1
0
        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);
                }
            }
Beispiel #2
0
        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,
                });
            }
        }
Beispiel #3
0
 public static void Start(SchemaBuilder sb, DynamicQueryManager dqm, Func <WorkflowConfigurationEmbedded> getConfiguration)
 {
     WorkflowLogic.Start(sb, dqm, getConfiguration);
     CaseActivityLogic.Start(sb, dqm);
     WorkflowEventTaskLogic.Start(sb, dqm);
 }
Beispiel #4
0
 public static void Start(SchemaBuilder sb, Func <WorkflowConfigurationEmbedded> getConfiguration)
 {
     WorkflowLogic.Start(sb, getConfiguration);
     CaseActivityLogic.Start(sb);
     WorkflowEventTaskLogic.Start(sb);
 }