コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }