Esempio n. 1
0
 public void DefineNewBenefit(DefineNewBenefit command)
 {
     ApplyEvent(new NewBenefitDefinedEvent
     {
         BenefitId            = command.BenefitId,
         BenefitDescription   = command.BenefitDescription,
         BenefitType          = command.BenefitType,
         HasMaxElectionAmount = command.HasMaxAmount,
         MaxElectionAmount    = command.MaxBenefitAmount,
         PlanId    = command.PlanId,
         CompanyId = command.CompanyId,
     },
                @event => _state.Apply(@event));
 }
        public ActionResult Create(DefineNewBenefit command, FormCollection collection)
        {
            if (ModelState.IsValid == false)
            {
                return(View());
            }

            try
            {
                //push our DefineNewBenefit command message on to the bus.
                command.BenefitId = Guid.NewGuid().ToString();
                command.CompanyId = MvcApplication.CompanyId;
                CommandResponse response = _commandSender.Send(command);

                if (response.CommandStatus == CommandStatusEnum.Failed)
                {
                    //set the error message in the ViewData and return to the view
                    ModelState.AddModelError("ResponseError", response.Message);
                    ViewData["PlansOffered"] = new SelectList(GetPlansOffered(), "Id", "Name");
                    ViewData["BenefitType"]  = new SelectList(GetBenefitTypes());
                    return(View());
                }

                return(RedirectToAction("List"));
            }
            catch (TimeoutException toe)
            {
                ModelState.AddModelError("TimeOutError", toe.Message);
                ViewData["PlansOffered"] = new SelectList(GetPlansOffered(), "Id", "Name");
                ViewData["BenefitType"]  = new SelectList(GetBenefitTypes());
                return(View());
            }
            catch
            {
                return(View());
            }
        }