public ExecuteStages Deal(Queue <ActivityState> todos, IDealer dealer, object context = null) { if (!this.Activity.CheckStart(this.Inputs, new ReadOnlyState(this.Config.Parameters), this, dealer, context)) { return(ExecuteStages.Denied); } if (this.ExecuteStage == ExecuteStages.Creating) { this.ExecuteStage = this.InsertActivity(dealer, context); } if (this.ExecuteStage == ExecuteStages.Created) { this.MergeStates(); } if (this.ExecuteStage == ExecuteStages.Executing || this.ExecuteStage == ExecuteStages.Created) { this.ExecuteStage = this.ExecuteActivity(dealer, null, context); this.SaveChanges(); } if (this.ExecuteStage == ExecuteStages.Executed) { if (this.Activity.CheckOver(this.Outputs, dealer, context)) { this.ExecuteStage = ExecuteStages.Routing; } } if (this.ExecuteStage == ExecuteStages.Routing) { if (todos != null) { this.ExecuteStage = RouteNexts(todos); } else { this.ExecuteStage = ExecuteStages.Finished; } } this.SaveChanges(); return(this.ExecuteStage); }
public Task CreateActivityStateAsync(ActivityStateEntity entity, ExecuteStages executeStage) { throw new NotImplementedException(); }