public static bool IsNextFlowStarted(string projectId, string flowCode) { var flow = FlowInfo.Get(flowCode); var nextFlowCodes = FlowInfo.Search(e => e.ParentCode == flow.ParentCode && e.ExecuteSequence == flow.ExecuteSequence + 1).Select(e => e.Code).ToList(); return(Any(p => p.ProjectId == projectId && nextFlowCodes.Contains(p.FlowCode) && p.NodeCode != Constants.NodeCode.Start && p.NodeCode != Constants.NodeCode.Finish)); }
public static void GenerateOnCreate(string mainFlowCode, string projectId) { var flows = FlowInfo.Search(e => e.ParentCode == mainFlowCode).ToList(); var projectNodes = new List <ProjectNode>(); flows.ForEach(f => { NodeInfo.Search(e => e.FlowCode == f.Code).ToList().ForEach(e => { projectNodes.Add(new ProjectNode { Id = Guid.NewGuid(), ProjectId = projectId, FlowCode = f.Code, NodeCode = e.Code, IsHistory = false, Status = ProjectNodeStatus.UnFinish }); }); }); ProjectNode.Add(projectNodes.ToArray()); if (mainFlowCode == Constants.FlowCode.Renewal) { var renewalNods = new List <ProjectNode>(); renewalNods.Add(new ProjectNode { Id = Guid.NewGuid(), ProjectId = projectId, FlowCode = "Renewal_GBMemo", NodeCode = "Renewal_GBMemo_Input", IsHistory = false, Status = ProjectNodeStatus.UnFinish }); renewalNods.Add(new ProjectNode { Id = Guid.NewGuid(), ProjectId = projectId, FlowCode = "Renewal_GBMemo", NodeCode = "Renewal_GBMemo_Send", IsHistory = false, Status = ProjectNodeStatus.UnFinish }); ProjectNode.Add(renewalNods.ToArray()); } if (mainFlowCode == Constants.FlowCode.MajorLease) { var majorleaseNods = new List <ProjectNode>(); majorleaseNods.Add(new ProjectNode { Id = Guid.NewGuid(), ProjectId = projectId, FlowCode = "MajorLease_GBMemo", NodeCode = "MajorLease_GBMemo_Input", IsHistory = false, Status = ProjectNodeStatus.UnFinish }); majorleaseNods.Add(new ProjectNode { Id = Guid.NewGuid(), ProjectId = projectId, FlowCode = "MajorLease_GBMemo", NodeCode = "MajorLease_GBMemo_Send", IsHistory = false, Status = ProjectNodeStatus.UnFinish }); ProjectNode.Add(majorleaseNods.ToArray()); } }