Beispiel #1
0
        public void Clear()
        {
            FunctionalElements.Clear();
            VisualElements.Clear();
            SessionVariables.Clear();
            var start = AddNewTask(null, typeof(ElemStart));

            AddNewTask(start, typeof(ElemEnd));
        }
Beispiel #2
0
 private void InsertTaskAfterElement(ElemBase origin, ElemBase adding)
 {
     adding.Task.VisualElement = adding;
     if (origin == null && adding.GetType() == typeof(ElemStart))
     {
         FunctionalElements.Add(adding.Task);
         VisualElements.Add(adding);
         return;
     }
     FunctionalElements.Insert(FunctionalElements.IndexOf(origin.Task) + 1, adding.Task);
     VisualElements.Insert(VisualElements.IndexOf(origin) + 1, adding);
 }
Beispiel #3
0
        private void Task_OnTaskEnd(object sender, TaskEndEventArgs e)
        {
            var lastTask = sender as TSBase;

            CurrentTaskIndex = GetTaskIndex(lastTask);
            if (ShouldForceStop)
            {
                EndSession("Force stop fired");
                return;
            }
            if (!e.EventSuccessful)
            {
                if (RestartOnError)
                {
                    RestartSession(String.Format("Restarting.. Task error at {0}\n{1} - {2}", CurrentTaskIndex + 1, lastTask.Name,
                                                 (e.Result as Exception).Message));
                }
                else
                {
                    EndSession(String.Format("Task error at {0}\n{1} - {2}", CurrentTaskIndex, lastTask.Name,
                                             (e.Result as Exception).Message));
                }

                return;
            }

            lastTask.AfterTaskEnd();
            if (lastTask.GetType() == typeof(TSRestart))
            {
                RestartSession("");
                return;
            }
            if (lastTask.GetType() == typeof(TSEnd))
            {
                EndSession("Task reached End node");
            }

            FunctionalElements.ElementAt(CurrentTaskIndex + 1).StartTask(e.Result);
        }