Ejemplo n.º 1
0
        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();
 }