Esempio n. 1
0
        private void DeleteAsAtom(JobStorageConnection jsc, string atomId)
        {
            var subatomIds = jsc.GetAllItemsFromSet(Atom.GenerateSubAtomKeys(atomId));

            foreach (var subatomId in subatomIds)
            {
                var context = new StateChangeContext(JobStorage.Current, jsc, subatomId, new DeletedState());
                _stateChanger.ChangeState(context);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Tries to start a "transaction" to advance the state to <paramref name="nextState"/>.
        /// </summary>
        /// <param name="nextState">The state to advance to.</param>
        /// <returns>The state change context. On disposal of this object, the state change is getting completed.</returns>
        public StateChangeContext TryBeginAdvanceTo(State nextState)
        {
            var context = new StateChangeContext(this.lockObject, () =>
            {
                this.CurrentState = nextState;
                this.OnStateChanged();
            })
            {
                Allowed = this.CurrentState.PossibleTransitions.Contains(nextState) && this.OnStateChanging(nextState)
            };

            return(context);
        }
Esempio n. 3
0
 public IState ChangeState(StateChangeContext context)
 {
     Console.WriteLine($"ChangeState {context.BackgroundJobId} to {context.NewState}");
     return(_inner.ChangeState(context));
 }
 public IState ChangeState(StateChangeContext context)
 {
     return(_inner.ChangeState(context));
 }