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); } }
/// <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); }
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)); }