Esempio n. 1
0
        private void ConfigureSM()
        {
            SM.Configure(BrokerState.BrokerInactive)
            .Permit(BrokerTrigger.BrokerSubmitsApplication, BrokerState.ApplicationAccepted);

            SM.Configure(BrokerState.ApplicationAccepted)
            .Permit(BrokerTrigger.PlanRejectsApplication, BrokerState.BrokerInactive)
            .PermitReentry(BrokerTrigger.BrokerAmendsApplication)
            .Permit(BrokerTrigger.PlanApprovesApplication, BrokerState.ApplicationApproved);

            SM.Configure(BrokerState.ApplicationApproved)
            .Permit(BrokerTrigger.BrokerSignsContract, BrokerState.BrokerCertified);

            SM.Configure(BrokerState.BrokerCertified)
            .OnEntry(() => { if (true)
                             {
                                 SM.Fire(BrokerTrigger.SalesTimeframeCommences);
                             }
                     })                                                                    //simulate auto-advance
            .Permit(BrokerTrigger.SalesTimeframeCommences, BrokerState.BrokerActive);


            SM.Configure(BrokerState.BrokerActive)
            .Permit(BrokerTrigger.SalesTimeframeExpires, BrokerState.BrokerInactive);
        }
Esempio n. 2
0
        private void ConfigureSM()
        {
            SM.Configure(PolicyState.PolicyReady)
            .Permit(PolicyTrigger.BrokerSubmitsGroupApplication, PolicyState.InUnderwriting);

            SM.Configure(PolicyState.InUnderwriting)
            .Permit(PolicyTrigger.PlanRejectsPolicy, PolicyState.Failed)
            .PermitReentry(PolicyTrigger.BrokerAmmendsGroupApplication)
            .Permit(PolicyTrigger.PlanApprovesPolicy, PolicyState.PolicyApproved);

            SM.Configure(PolicyState.PolicyApproved)
            .Permit(PolicyTrigger.GroupRejectsPolicy, PolicyState.Failed)
            .Permit(PolicyTrigger.GroupApprovesPolicy, PolicyState.Complete);

            SM.Configure(PolicyState.Complete)
            .Permit(PolicyTrigger.PlanSetsUpGroup, PolicyState.EnrollmentInProgress);
        }
Esempio n. 3
0
        private void ConfigureSM()
        {
            SM.Configure(SaleState.NewSale)
            .Permit(SaleTrigger.GroupSignsUp, SaleState.ProductsOffered);

            SM.Configure(SaleState.ProductsOffered)
            .Permit(SaleTrigger.GroupSelectsProducts, SaleState.ProductsSelected)
            .Permit(SaleTrigger.GroupProvidesRoster, SaleState.RosterProvided);

            SM.Configure(SaleState.ProductsSelected)
            .Permit(SaleTrigger.GroupProvidesRoster, SaleState.SaleReady);

            SM.Configure(SaleState.RosterProvided)
            .Permit(SaleTrigger.GroupSelectsProducts, SaleState.SaleReady);

            SM.Configure(SaleState.SaleReady)
            .Permit(SaleTrigger.AllPoliciesFailed, SaleState.SaleFailed)
            .Permit(SaleTrigger.OneOrMorePoliciesComplete, SaleState.SaleComplete);
        }