//
        // GET: /Claims/SubmitClaim
        public ActionResult SubmitClaim()
        {
            var viewModel = new SubmitClaimViewModel
                {
                    ClaimTypes = BuildClaimTypesSelectList(_claimTypesReadModel),
                };

            return View(viewModel);
        }
        public ActionResult SubmitClaim(SubmitClaimViewModel model)
        {
            try
            {
                var command = model.Command;
                command.ParticipantId = MvcApplication.ParticipantId;
                command.CompanyId = MvcApplication.CompanyId;
                command.ClaimRequestId = Guid.NewGuid().ToString();
                command.Source = "MFO";
                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);
                    var newModel = new SubmitClaimViewModel
                        {
                            Command = command,
                            ClaimTypes = BuildClaimTypesSelectList(_claimTypesReadModel),
                        };
                    newModel.Command = command;
                    return View(newModel);
                }

                return RedirectToAction("Index");
            }
            catch (TimeoutException toe)
            {
                ModelState.AddModelError("TimeOutError", toe.Message);
                return View(new SubmitClaimViewModel
                    {
                        ClaimTypes = BuildClaimTypesSelectList(_claimTypesReadModel)
                    });
            }
            catch
            {
                return View(new SubmitClaimViewModel
                    {
                        ClaimTypes = BuildClaimTypesSelectList(_claimTypesReadModel)
                    });
            }
        }