internal static AwaitableTriggerRepresentation <TTrigger> CreateTriggerRepresentation <TState, TTrigger>( TTrigger trigger, AwaitableStateRepresentation <TState, TTrigger> representation) { var rep = new AwaitableTriggerRepresentation <TTrigger>(trigger); representation.Triggers.Add(rep); return(rep); }
internal static async Task <DynamicState <TState>?> GetValidatedDynamicTransition <TState, TTrigger>( AwaitableTriggerRepresentation <TTrigger> triggerRep) { DynamicState <TState> dynamicState; if (AwaitableStateConfigurationHelper.CheckFlag(triggerRep.AwaitableTransitionFlags, AwaitableTransitionFlag.DynamicStateReturnsTask)) { dynamicState = await((Func <Task <DynamicState <TState> > >)triggerRep.NextStateRepresentationWrapper)(); } else { dynamicState = ((Func <DynamicState <TState> >)triggerRep.NextStateRepresentationWrapper)(); } return(dynamicState.CanTransition ? new DynamicState <TState>?(dynamicState) : null); }