Пример #1
0
        private void Handle(TaskSelected message)
        {
            RequireActivation(true);
            if (message.ParentTaskInstanceId != this.InstanceId)
            {
                throw new Exception();
            }
            TransitionInfo ti = GetTransition(message.FromTaskInstanceId);

            if (ti == null)
            {
                throw new Exception();
            }
            lock (this)
            {
                log.Info("Child task {0} has been started", ti.InstanceId);
                if (ti.Status == TransitionStatus.Started)
                {
                    return;
                }
                if (ti.Status != TransitionStatus.Enabled && ti.Status != TransitionStatus.Enabling)
                {
                    log.Warn("Transition {0} ({1}) is not enabled: {2}", ti.InstanceId, ti.TaskId, ti.Status);
                    return;
                }
                ti.Status = TransitionStatus.Started;
                OnTransitionStatusChanged(ti.InstanceId);
            }
        }
Пример #2
0
 /// <summary>
 /// Handle child task started event
 /// </summary>
 /// <param name="tse"></param>
 private void HandleChildTaskStarted(TaskSelected tse)
 {
     if (tse.ParentTaskInstanceId != this.InstanceId)
         throw new TaskRuntimeException("Parent task correlation id is incorrect").SetInstanceId(InstanceId);
     TransitionInfo ti = GetTransitionInfo(tse.FromTaskInstanceId);
     if (ti == null)
         throw new TaskRuntimeException("Child task not found: " + tse.FromTaskInstanceId).SetInstanceId(InstanceId);
     if (ti.Status == TransitionStatus.Started)
         return;
     if (ti.Status == TransitionStatus.Enabling)
         ti.Status = TransitionStatus.Enabled;
     if (ti.Status == TransitionStatus.Enabled)
     {
         log.Debug("Child task {0} ({1}) started", ti.InstanceId, ti.TaskId);
         OnChildTaskStarted(tse.FromTaskInstanceId);
     }
     else
     {
         log.Warn("Child task {0} ({1}) started, but current transition status is {2}. Ignoring the notification - status inconsistent", tse.FromTaskInstanceId, ti.TaskId, ti.Status);
         return;
     }
     //else throw new Exception("Invalid transition status");
 }
Пример #3
0
 private void Handle(TaskSelected message)
 {
     HandleChildTaskStarted(message);
 }
Пример #4
0
 /// <summary>
 /// Raises the <see cref="TaskSelected"/> event.
 /// </summary>
 /// <param name="e">The <see cref="Microsoft.Win32.TaskScheduler.TaskListView.TaskSelectedEventArgs"/> instance containing the event data.</param>
 protected virtual void OnTaskSelected(TaskSelectedEventArgs e)
 {
     TaskSelected?.Invoke(this, e);
 }
Пример #5
0
 public void SelectTask(TaskVm selectedTask)
 {
     SelectedTask = selectedTask;
     TaskSelected?.Invoke(this, null);
 }
 private void Border_MouseDown(object sender, MouseButtonEventArgs e)
 {
     TaskSelected?.Invoke(sender, ((TaskListDisplayItem)((Border)sender).DataContext).Id);
 }
Пример #7
0
 public void InvokeAllTasks()
 {
     TaskSelected?.Invoke(this, null);
 }
Пример #8
0
 private void Handle(TaskSelected message)
 {
     RequireActivation(true);
     if (message.ParentTaskInstanceId != this.InstanceId) throw new Exception();
     TransitionInfo ti = GetTransition(message.FromTaskInstanceId);
     if (ti == null) throw new Exception();
     lock (this)
     {
         log.Info("Child task {0} has been started", ti.InstanceId);
         if (ti.Status == TransitionStatus.Started)
             return;
         if (ti.Status != TransitionStatus.Enabled && ti.Status != TransitionStatus.Enabling)
         {
             log.Warn("Transition {0} ({1}) is not enabled: {2}", ti.InstanceId, ti.TaskId, ti.Status);
             return;
         }
         ti.Status = TransitionStatus.Started;
         OnTransitionStatusChanged(ti.InstanceId);
     }
 }