Exemple #1
0
        public TState DoNext(IStateTransformer <TState> transformer)
        {
            lock (_locker)
            {
                if (transformer == null)
                {
                    throw new ArgumentNullException(nameof(transformer));
                }

                PropertyChanging?.Invoke(this, new PropertyChangingEventArgs(nameof(State)));

                transformer.Transform(State);

                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(State)));

                return(State);
            }
        }
 protected AppStrategy(IStateTransformer <TState> transformer,
                       IStateMachine <TState, IStateTransformer <TState> > stateMachine)
 {
     Transformer  = transformer;
     StateMachine = stateMachine;
 }