예제 #1
0
 public MobileRepository(MobilesContext mobilesContext, IEnumConverter enumConverter,
                         IDateTimeCreator dateTimeCreator)
 {
     this.mobilesContext  = mobilesContext;
     this.enumConverter   = enumConverter;
     this.dateTimeCreator = dateTimeCreator;
 }
예제 #2
0
 public ActivationCodesController(ILogger <ActivationCodesController> logger,
                                  IDataStore dataStore,
                                  IDateTimeCreator dateTimeCreator)
 {
     this.logger          = logger;
     this.dataStore       = dataStore;
     this.dateTimeCreator = dateTimeCreator;
 }
 public MobileWhenNewBuilder(IDateTimeCreator dateTimeCreator, Guid globalId, Guid customerId, PhoneNumber phoneNumber)
 {
     this.dateTimeCreator = dateTimeCreator;
     this.globalId        = globalId;
     this.customerId      = customerId;
     this.enumConverter   = new EnumConverter();
     this.phoneNumber     = phoneNumber;
 }
예제 #4
0
 public CustomersService(ILogger <CustomersService> logger,
                         IGuidCreator guidCreator,
                         IDateTimeCreator dateTimeCreator,
                         ICustomerRepository customerRepository,
                         IRepository <Mobile> mobileRepository)
 {
     this.logger             = logger;
     this.guidCreator        = guidCreator;
     this.dateTimeCreator    = dateTimeCreator;
     this.customerRepository = customerRepository;
     this.mobileRepository   = mobileRepository;
 }
        public MobileBehaviour(IDateTimeCreator dateTimeCreator, MobileDataEntity mobileDataEntity)
        {
            this.dateTimeCreator = dateTimeCreator;
            var enumConverter = new EnumConverter();

            var initialState = MobileState.New;

            if (mobileDataEntity.State != null)
            {
                initialState = enumConverter.ToEnum <MobileState>(mobileDataEntity.State);
            }

            machine = new StateMachine <MobileState, Trigger>(initialState);

            machine.Configure(MobileState.New)
            .Permit(Trigger.Provision, MobileState.ProcessingProvision);
            machine.Configure(MobileState.ProcessingProvision)
            .Permit(Trigger.ProcessingProvisionCompleted, MobileState.WaitingForActivate)
            .OnEntry(() => { CreateNewOrder(); })
            .OnExit(() => { CompleteInProgressOrder(); });
            machine.Configure(MobileState.WaitingForActivate)
            .Permit(Trigger.Activate, MobileState.ProcessingActivate);
            machine.Configure(MobileState.ProcessingActivate)
            .Permit(Trigger.ActivateCompleted, MobileState.Live)
            .Permit(Trigger.ActivateRejected, MobileState.WaitingForActivate)
            .OnEntry(() => { CreateNewOrder(); })
            .OnExit(() =>
            {
                if (isOrderRejected)
                {
                    RejectInProgressOrder();
                }
                else
                {
                    CompleteInProgressOrder();
                }
            });
            machine.Configure(MobileState.Live)
            .Permit(Trigger.Cease, MobileState.ProcessingCease);
            machine.Configure(MobileState.ProcessingCease)
            .Permit(Trigger.CeaseCompleted, MobileState.Ceased)
            .OnEntry(() => { CreateNewOrder(); })
            .OnExit(() => { CompleteInProgressOrder(); });
            machine.Configure(MobileState.Ceased);
            machine.Configure(MobileState.New).Permit(Trigger.PortIn, MobileState.ProcessingPortIn);
            machine.Configure(MobileState.ProcessingPortIn).Permit(Trigger.PortInCompleted, MobileState.Live);
            machine.Configure(MobileState.Live).Permit(Trigger.Suspend, MobileState.Suspended);
            machine.Configure(MobileState.Suspended).Permit(Trigger.Resume, MobileState.Live);
            machine.Configure(MobileState.Live).Permit(Trigger.ReplaceSim, MobileState.Suspended);
            machine.Configure(MobileState.Live).Permit(Trigger.RequestPac, MobileState.ProcessingPortOut);
            machine.Configure(MobileState.ProcessingPortOut).Permit(Trigger.PortOutCompleted, MobileState.PortedOut);
        }
예제 #6
0
 public GetProcessingProvisionMobilesQuery(MobilesContext mobilesContext, IDateTimeCreator dateTimeCreator)
 {
     this.mobilesContext  = mobilesContext;
     this.dateTimeCreator = dateTimeCreator;
 }
 public GetNewProvisionsQuery(MobilesContext mobilesContext, IDateTimeCreator dateTimeCreator)
 {
     this.mobilesContext  = mobilesContext;
     this.dateTimeCreator = dateTimeCreator;
 }
예제 #8
0
 public GetNewActivatesQuery(MobilesContext mobilesContext,
                             IDateTimeCreator dateTimeCreator)
 {
     this.mobilesContext  = mobilesContext;
     this.dateTimeCreator = dateTimeCreator;
 }
 public GetMobileByOrderIdQuery(MobilesContext mobilesContext, IDateTimeCreator dateTimeCreator)
 {
     this.mobilesContext  = mobilesContext;
     this.dateTimeCreator = dateTimeCreator;
 }
 public Mobile(IDateTimeCreator dateTimeCreator, MobileDataEntity mobileDataEntity)
 {
     this.mobileDataEntity = mobileDataEntity;
     behaviour             = new MobileBehaviour(dateTimeCreator, mobileDataEntity);
 }