protected BaseStatefulServiceInstance( CoreDependencies coreDependencies, StatefulDependencies statefulDependencies) : base(coreDependencies) { _stateRepository = statefulDependencies.StateRepository; _currentEnvironment = coreDependencies.EnvironmentResolver.Environment; CreatedDate = ServiceClock.CurrentTime(); ModifiedDate = CreatedDate; // REMOVE THE DEFAULT VALIDATION AND REPLACE WITH THE STATEFUL VALIDATION SERVICE var existingValidation = PipeLine.FirstOrDefault(x => typeof(ValidationMiddleware) == x.GetType()); var idx = PipeLine.IndexOf(existingValidation); PipeLine.RemoveAt(idx); PipeLine.Insert(idx, new StateMachineValidatorMiddleware <TTrigger>(coreDependencies.RequestValidator)); _data = new TData(); Machine = new StateMachine <TState, TTrigger>(() => _data.State, s => _data.State = s); Machine.OnTransitionCompletedAsync(OnTransitionAction); }