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