protected void OnWorkingStepCompleted(AllEnums.WorkingStepEndConditionTrigger trigger) { //Error Tracking if (m_ErrorFreeStep) { m_ErrorFreeCount++; } WorkingStepCompletedEventArgs e = new WorkingStepCompletedEventArgs(); e.WorkingStepNumber = CurrentWorkingStepNumber; e.WorkingStep = CurrentWorkingStep; e.LoadedWorkflow = LoadedWorkflow; e.WorkflowStartTime = m_StartTime; e.StepStartTime = m_StepStartTime; e.StepEndTime = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; e.StepDurationTime = e.StepEndTime - e.StepStartTime; EventHandler <WorkingStepCompletedEventArgs> handler = WorkingStepCompleted; if (handler != null) { handler(this, e); } //Trigger WorkflowCompleted event as soon as the last step (end step) is reached if (CurrentWorkingStepNumber == m_LoadedWorkflow.WorkingSteps.Count) { OnWorkflowCompleted(); } }
public void NextWorkingStep(AllEnums.WorkingStepEndConditionTrigger trigger) { if (StateManager.Instance.State == AllEnums.State.WORKFLOW_PLAYING) { if (m_CurrentWorkingStepNumber != LoadedWorkflow.WorkingSteps.Count) { //Trigger Step Completed Event OnWorkingStepCompleted(trigger); // reset error counter m_AssemblyErrors = 0; m_BoxErrorCounter = 0; m_CurrentWorkingStepNumber = m_CurrentWorkingStepNumber + 1; if (m_CurrentWorkingStepNumber < LoadedWorkflow.WorkingSteps.Count) { //Trigger Step Started Event OnWorkingStepStarted(); // load next scene onto scenemanager LoadCurrentWorkingStep(); string stepCsv = "Step" + (m_CurrentWorkingStepNumber - 1); this.saveToCSV(stepCsv); } else { // finished } } } }