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); } }
/// <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"); }
private void Handle(TaskSelected message) { HandleChildTaskStarted(message); }
/// <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); }
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); }
public void InvokeAllTasks() { TaskSelected?.Invoke(this, null); }
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); } }