public СonfirmStateFalling(PlanCertificate entity, IRepositoryFactory repositoryFactory, IPlanCertificateState strategy = null) : base(entity, repositoryFactory) { _strategy = strategy; _repositoryFactory = repositoryFactory; }
public void SetState(PlanCertificate entity, PlanCertificateState newState, Sense behavior = Sense.Falling) { switch (entity.State) { case PlanCertificateState.NotСonfirm: _state = new NotСonfirmState(entity, _repositoryFactory); break; case PlanCertificateState.Confirm: if (behavior == Sense.Emerge) { _state = new СonfirmStateEmerge(entity, _repositoryFactory); } if (behavior == Sense.Falling) { _state = new СonfirmStateFalling(entity, _repositoryFactory); } if (behavior == Sense.Full) { _state = new СonfirmStateFalling(entity, _repositoryFactory, new СonfirmStateEmerge(entity, _repositoryFactory)); } break; case PlanCertificateState.Close: if (behavior == Sense.Emerge) { _state = new СloseStateEmerge(entity, _repositoryFactory); } if (behavior == Sense.Falling) { _state = new СloseStateFalling(entity, _repositoryFactory); } if (behavior == Sense.Full) { _state = new СloseStateFalling(entity, _repositoryFactory, new СloseStateEmerge(entity, _repositoryFactory)); } break; default: throw new CheckingSetStatePlanReceiptOrderInvalidException( Resource.PCOStateNotExist.StringFormat(entity.Rn)); } switch (newState) { case PlanCertificateState.NotСonfirm: _state.SetStateNotConfirm(); break; case PlanCertificateState.Confirm: _state.SetStateConfirm(); break; case PlanCertificateState.Close: _state.SetStateClose(); break; default: throw new CheckingSetStatePlanReceiptOrderInvalidException( Resource.PCOStateNotExist.StringFormat(entity.Rn)); } }