public TransitionResult(
     TEvent myEvent,
     TransitionResultType resultType)
 {
     this.Event      = myEvent;
     this.ResultType = resultType;
 }
 public Task Save(TransitionResultType result, TState state, TEvent?myEvent, TContext context, TMessage message)
 {
     this.Transitions.Add(new SavedNode(
                              result,
                              state,
                              myEvent,
                              message));
     return(Task.FromResult(0));
 }
 public SavedNode(
     TransitionResultType resultType,
     TState state,
     TEvent? @event,
     TMessage message)
 {
     this.ResultType = resultType;
     this.State      = state;
     this.Event      = @event;
     this.Message    = message;
 }
 public TransitionEvent(
     TState state,
     TEvent eventType,
     TransitionResultType result,
     TContext context,
     TMessage message)
 {
     this.State        = state;
     this.Event        = eventType;
     this.Result       = result;
     this.EventContext = context;
     this.Message      = message;
 }