Exemple #1
0
        /// <inheritdoc/>
        public virtual void TransitionTo(Func <IStateBuilderFactory, IStateBuilder> stateSetup)
        {
            //TODO: configure transition
            StateDefinition state = this.Pipeline.AddState(stateSetup);

            this.Outcome = new TransitionDefinition()
            {
                NextState = state.Name
            };
        }
Exemple #2
0
        /// <inheritdoc/>
        public virtual ErrorHandlerDefinition Build()
        {
            StateOutcomeDefinition outcome = this.Outcome.Build();

            switch (outcome)
            {
            case TransitionDefinition transition:
                this.ErrorHandler.Transition = transition;
                break;

            case EndDefinition end:
                this.ErrorHandler.End = end;
                break;

            default:
                throw new NotSupportedException($"the specified {nameof(StateOutcomeDefinition)} type '{outcome.GetType().Name}' is not supported");
            }
            return(this.ErrorHandler);
        }
        /// <inheritdoc/>
        public virtual new EventCaseDefinition Build()
        {
            StateOutcomeDefinition outcome = base.Build();

            switch (outcome)
            {
            case EndDefinition end:
                this.Case.End = end;
                break;

            case TransitionDefinition transition:
                this.Case.Transition = transition;
                break;

            default:
                throw new NotSupportedException($"The specified outcome type '{outcome.GetType().Name}' is not supported");
            }
            return(this.Case);
        }
Exemple #4
0
 /// <inheritdoc/>
 public virtual void End()
 {
     //TODO: configure end
     this.Outcome = new EndDefinition();
 }