public static List <AnalyticsWorkflowState> UpdateStates(List <AnalyticsWorkflowState> workflowState) { //get current state var preCurrentState = CurrentState; //Updating next workflow state if (workflowState.Count == 1) { if (workflowState[0].Name == State.TrainingSet) { workflowState[0].CreateStatus = Status.Completed; workflowState[0].IsCurrent = true; } if (workflowState[0].ReviewStatus == Status.NotStarted) { ChangeToState = workflowState[0]; } } //else if (TrainingSet.ReviewStatus == Status.NotStarted) //{ // ChangeToState = new State(); //} ProjectSetup = workflowState.Find(p => p.Name == State.ProjectSetup) ?? ProjectSetup; ControlSet = workflowState.Find(p => p.Name == State.ControlSet) ?? ControlSet; TrainingSet = workflowState.Find(p => p.Name == State.TrainingSet) ?? TrainingSet; PredictSet = workflowState.Find(p => p.Name == State.PredictSet) ?? PredictSet; QcSet = workflowState.Find(p => p.Name == State.QcSet) ?? QcSet; Done = workflowState.Find(p => p.Name == State.Done) ?? Done; ProjectSetup.Order = 1; ControlSet.Order = 2; TrainingSet.Order = 3; PredictSet.Order = 4; QcSet.Order = 5; Done.Order = 6; WorkflowState[0] = ProjectSetup; WorkflowState[1] = ControlSet; WorkflowState[2] = TrainingSet; WorkflowState[3] = PredictSet; WorkflowState[4] = QcSet; WorkflowState[5] = Done; AnalyticsWorkflowState postCurrentState = CurrentState; if (preCurrentState != null && postCurrentState == null) { SetCurrentState(); } FireWorkflowStateChangedEvent(); return(WorkflowState); }
private static void SetCurrentState() { for (int i = WorkflowState.Count - 1; i >= 0; i--) { AnalyticsWorkflowState state = WorkflowState[i]; if (state.CreateStatus != Status.NotStarted) { state.IsCurrent = true; break; } } }
public static AnalyticsWorkflowState UpdateState(State name, Status createStatus, Status reviewStatus, bool isCurrent) { if (isCurrent) //if setting new state to current, all other states should not be current { foreach (var state in WorkflowState) { state.IsCurrent = false; } } AnalyticsWorkflowState updatedState = WorkflowState.Find(p => p.Name == name); updatedState.CreateStatus = createStatus; updatedState.ReviewStatus = reviewStatus; updatedState.IsCurrent = isCurrent; FireWorkflowStateChangedEvent(); return(updatedState); }
public static List<AnalyticsWorkflowState> UpdateStates(List<AnalyticsWorkflowState> workflowState) { //get current state var preCurrentState = CurrentState; //Updating next workflow state if (workflowState.Count == 1) { if (workflowState[0].Name == State.TrainingSet) { workflowState[0].CreateStatus = Status.Completed; workflowState[0].IsCurrent = true; } if (workflowState[0].ReviewStatus == Status.NotStarted) { ChangeToState = workflowState[0]; } } //else if (TrainingSet.ReviewStatus == Status.NotStarted) //{ // ChangeToState = new State(); //} ProjectSetup = workflowState.Find(p => p.Name == State.ProjectSetup) ?? ProjectSetup; ControlSet = workflowState.Find(p => p.Name == State.ControlSet) ?? ControlSet; TrainingSet = workflowState.Find(p => p.Name == State.TrainingSet) ?? TrainingSet; PredictSet = workflowState.Find(p => p.Name == State.PredictSet) ?? PredictSet; QcSet = workflowState.Find(p => p.Name == State.QcSet) ?? QcSet; Done = workflowState.Find(p => p.Name == State.Done) ?? Done; ProjectSetup.Order=1; ControlSet.Order = 2; TrainingSet.Order = 3; PredictSet.Order = 4; QcSet.Order = 5; Done.Order = 6; WorkflowState[0] = ProjectSetup; WorkflowState[1] = ControlSet; WorkflowState[2] = TrainingSet; WorkflowState[3] = PredictSet; WorkflowState[4] = QcSet; WorkflowState[5] = Done; AnalyticsWorkflowState postCurrentState = CurrentState; if (preCurrentState != null && postCurrentState == null) { SetCurrentState(); } FireWorkflowStateChangedEvent(); return WorkflowState; }