public IActionResult AddEditVictim(long?victimId, long accidentId, AccidentCategoryEnum accidentCategory) { AccidentVictimViewModel victimViewModel; var citizenSelectList = lifeService.GetSelectListOfCitizensFromDb(); var bodilyHarmSelectList = lifeService.GetSelectListFromEnum <BodilyHarmEnum>(); if (victimId == null) { victimViewModel = new AccidentVictimViewModel { AccidentId = accidentId, BodilyHarm = BodilyHarmEnum.NotAvailable, CitizenId = null, InitialCitizenId = null, EconomicLoss = null, }; } else { var victimFromDb = victimRepository.Get((long)victimId); victimViewModel = mapper.Map <AccidentVictimViewModel>(victimFromDb); } victimViewModel.BodilyHarmList = bodilyHarmSelectList; victimViewModel.CitizenList = citizenSelectList; victimViewModel.AccidentCategory = accidentCategory; return(View("~/Views/Life/AddEditVictim.cshtml", victimViewModel)); }
public IActionResult AddEditVictim(AccidentVictimViewModel accidentVictimViewModel) { accidentVictimViewModel.CitizenList = lifeService.GetSelectListOfCitizensFromDb(); accidentVictimViewModel.BodilyHarmList = lifeService.GetSelectListFromEnum <BodilyHarmEnum>(); // CitizenId is not valid if (ModelState[nameof(accidentVictimViewModel.CitizenId)].ValidationState == ModelValidationState.Invalid) { // remove all ModelStateEntries with key name different from "CitizenId" -> // we demonstrate only CitizenId error here ModelState.Keys.Where(key => key != nameof(accidentVictimViewModel.CitizenId)). ToList().Select(key => ModelState.Remove(key)).ToList(); return(View("~/Views/Life/AddEditVictim.cshtml", accidentVictimViewModel)); } // EconomicLoss numeric format is not valid (though the user attempted to enter something) if (!ModelState.IsValid && ModelState[nameof(accidentVictimViewModel.EconomicLoss)].AttemptedValue != String.Empty) { return(View("~/Views/Life/AddEditVictim.cshtml", accidentVictimViewModel)); } // validation for combination of properties if ((accidentVictimViewModel.EconomicLoss == null || accidentVictimViewModel.EconomicLoss == 0) && (accidentVictimViewModel.BodilyHarm == BodilyHarmEnum.None || accidentVictimViewModel.BodilyHarm == BodilyHarmEnum.NotAvailable)) { ModelState.Clear(); ModelState.AddModelError(String.Empty, "Чтобы человек считался потерпевшим, у него должны быть телесные повреждения или экономический ущерб");; return(View("~/Views/Life/AddEditVictim.cshtml", accidentVictimViewModel)); } var accidentVictim = mapper.Map <AccidentVictim>(accidentVictimViewModel); var citizenUser = citizenUserRepository.Get((long)accidentVictimViewModel.CitizenId); accidentVictim.Victim = citizenUser; var accident = accidentRepository.Get(accidentVictimViewModel.AccidentId); accidentVictim.Accident = accident; victimRepository.Save(accidentVictim); return(RedirectToAction(nameof(EditFire), new { id = accidentVictimViewModel.AccidentId })); }