// GET: Physicians/Create public IActionResult Create() { CreatePolicyHolderViewModel vm = new CreatePolicyHolderViewModel(); vm.CurrentPolicyHolder = new PolicyHolder(); var codes = from p in _policyContext.Policies select p.PolicyCode; vm.Policies = GetSelectListItems(codes); return(View(vm)); }
public async Task <IActionResult> Create(CreatePolicyHolderViewModel vm) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderNameValidation, ""); HttpContext.Session.SetString(HomeController.CreatePolicyHolderAddressValidation, ""); HttpContext.Session.SetString(HomeController.CreatePolicyHolderPronounsValidation, ""); HttpContext.Session.SetString(HomeController.CreatePolicyHolderPolicyCodeValidation, ""); HttpContext.Session.SetString(HomeController.CreatePolicyHolderDOBValidation, ""); HttpContext.Session.SetString(HomeController.CreatePolicyHolderStartValidation, ""); HttpContext.Session.SetString(HomeController.CreatePolicyHolderEndValidation, ""); var codes = from p in _policyContext.Policies select p.PolicyCode; vm.Policies = GetSelectListItems(codes); if (string.IsNullOrEmpty(vm.CurrentPolicyHolder.Name)) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderNameValidation, "Required Field"); return(View(vm)); } if (vm.CurrentPolicyHolder.DateOfBirth == DateTime.MinValue) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderDOBValidation, "Required Field"); return(View(vm)); } if (string.IsNullOrEmpty(vm.CurrentPolicyHolder.Pronouns)) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderPronounsValidation, "Required Field"); return(View(vm)); } if (string.IsNullOrEmpty(vm.CurrentPolicyHolder.Address)) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderAddressValidation, "Required Field"); return(View(vm)); } if (string.IsNullOrEmpty(vm.CurrentPolicyHolder.PolicyCode)) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderPolicyCodeValidation, "Required Field"); return(View(vm)); } if (vm.CurrentPolicyHolder.StartDate == DateTime.MinValue) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderStartValidation, "Required Field"); return(View(vm)); } if (vm.CurrentPolicyHolder.EndDate == DateTime.MinValue) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderEndValidation, "Required Field"); return(View(vm)); } PolicyHolder policyHolder = vm.CurrentPolicyHolder; policyHolder.AmountPaid = 0; Policy policy = _policyContext.Policies.First(p => p.PolicyCode == policyHolder.PolicyCode); policyHolder.PolicyId = policy.Id; DateTime currentYear = new DateTime(DateTime.Now.Year, 1, 1); if (vm.CurrentPolicyHolder.DateOfBirth >= currentYear) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderDOBValidation, "Policyholder cannot be born in this year"); return(View(vm)); } double years = (DateTime.Now - vm.CurrentPolicyHolder.DateOfBirth).TotalDays / 365.25; if (years > policy.AgeLimit) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderDOBValidation, "Policyholder is too old for this policy"); return(View(vm)); } if (vm.CurrentPolicyHolder.StartDate < DateTime.Now) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderStartValidation, "Start date cannot be before today"); return(View(vm)); } if (vm.CurrentPolicyHolder.StartDate > vm.CurrentPolicyHolder.EndDate) { HttpContext.Session.SetString(HomeController.CreatePolicyHolderEndValidation, "End date cannot be before start date"); return(View(vm)); } policyHolder.AmountRemaining = policy.MaxCoverage; _policyHolderContext.Add(policyHolder); await _policyHolderContext.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }