public override void HandleTaskExecEvent(TaskExecEvent ev)
 {
     if (ev is InterTaskMessage)
     {
         InterTaskMessage tm = ev as InterTaskMessage;
         if (tm.ToMailbox != this.Mailbox) return;
         //var sr = Context.GetService<IMessageCorrelationRegistry>();
         //sr.Unsubscribe(this.Mailbox, this.InstanceId);
         this.Complete();
     }
     base.HandleTaskExecEvent(ev);
 }
예제 #2
0
 public override void HandleTaskExecEvent(TaskExecEvent ev)
 {
     base.HandleTaskExecEvent(ev);
     if (ev is TaskTimerEvent)
     {
         if (this.Status == TaskStatus.Enabling || this.Status == TaskStatus.Enabled || this.Status == TaskStatus.Selected)
         {
             if (DateTime.Now + this.Delay <= DateTime.Now)
             {
                 Complete();
             }
         }
     }
 }
예제 #3
0
 protected void HandleChildTaskEvent(TaskExecEvent ev)
 {
     if (ev.ParentTaskInstanceId != this.InstanceId) throw new Exception("invalid instance id");
     var ti = GetTransitionInfo(ev.FromTaskInstanceId);
     if (ti == null) throw new Exception("Child transition not found: " + ev.FromTaskInstanceId);
     if (ev is TaskEnabled)
     {
         Handle((TaskEnabled)ev);
         return;
     }
     else if (ev is TaskCancelled)
     {
         Handle((TaskCancelled)ev);
         return;
     }
     else if (ev is TaskCompleted)
     {
         Handle((TaskCompleted)ev);
         return;
     }
     else if (ev is TaskFailed)
     {
         Handle((TaskFailed)ev);
         return;
     }
     else if (ev is TaskSelected)
     {
         Handle((TaskSelected)ev);
         return;
     }
     else throw new Exception();
 }
예제 #4
0
 public override void HandleTaskExecEvent(TaskExecEvent ev)
 {
     base.HandleTaskExecEvent(ev);
     HandleChildTaskEvent(ev);
     ContinueTaskExecution();
 }
예제 #5
0
 public void NotifyTaskEvent(TaskExecutionEvents.TaskExecEvent ev)
 {
     SendProcessMessage(ev, false);
 }
예제 #6
0
 public void ScheduleTaskEvent(TaskExecutionEvents.TaskExecEvent ev, DateTime deliveryDate)
 {
     _runner.MessageBus.NotifyAt(deliveryDate, ev);
 }
예제 #7
0
 public virtual void HandleTaskExecEvent(TaskExecEvent ev)
 {
     if (ev.ParentTaskInstanceId != this.InstanceId) throw new Exception("Invalid ParentTaskInstanceId");
 }
예제 #8
0
 public override void HandleTaskExecEvent(TaskExecEvent ev)
 {
     base.HandleTaskExecEvent(ev);
     if (ev is TaskEnabled)
     {
         Handle((TaskEnabled)ev);
     }
     else if (ev is TaskSelected)
     {
         Handle((TaskSelected)ev);
     }
     else if (ev is TaskCompleted)
     {
         Handle((TaskCompleted)ev);
     }
     else if (ev is TaskFailed)
     {
         Handle((TaskFailed)ev);
     }
     else if (ev is TaskCancelled)
     {
         Handle((TaskCancelled)ev);
     }
     else throw new Exception();
 }