public IActionResult AddEditAccident(long id) { var accidentCategoryList = lifeService.GetSelectListFromEnum <AccidentCategoryEnum>(); var accidentAddressList = lifeService.GetSelectListOfAddressesFromDb(); // view model for Add Accident var accidentViewModel = new AccidentViewModel() { Id = 0, AccidentDate = DateTime.Now, AddressViewModel = null, AccidentAddressText = Dictionaries.NotAvailable, SelectedAccidentAddress = 0, AccidentAddressList = accidentAddressList, SelectedAccidentCategory = 0, AccidentCategoryList = accidentCategoryList, AccidentDescription = String.Empty, }; if (id != 0) { // view model for Edit Accident var accidentFromDb = this.accidentRepository.Get(id); accidentViewModel = mapper.Map <AccidentViewModel>(accidentFromDb); accidentViewModel.AccidentAddressList = accidentAddressList; accidentViewModel.AccidentCategoryList = accidentCategoryList; } return(PartialView("~/Views/Shared/Life/_AddEditAccident.cshtml", accidentViewModel)); }
public IActionResult AddEditAccident(AccidentViewModel accidentViewModel) { accidentViewModel.AccidentCategoryList = lifeService.GetSelectListFromEnum <AccidentCategoryEnum>(); accidentViewModel.AccidentAddressList = lifeService.GetSelectListOfAddressesFromDb(); // validation for combination of fields if (accidentViewModel.SelectedAccidentAddress == null && accidentViewModel.AccidentDescription == null) { ModelState.AddModelError(String.Empty, "Надо заполнить хотя бы одно из полей: адрес происшествия или описание"); return(PartialView("~/Views/Shared/Life/_AddEditAccident.cshtml", accidentViewModel)); } // validation for particular fields if (!ModelState.IsValid) { return(PartialView("~/Views/Shared/Life/_AddEditAccident.cshtml", accidentViewModel)); } var accident = mapper.Map <Accident>(accidentViewModel); if (accidentViewModel.SelectedAccidentAddress != null) { var address = addressRepository.Get((long)accidentViewModel.SelectedAccidentAddress); accident.AccidentAddress = address; } accident.AccidentCategory = (AccidentCategoryEnum)accidentViewModel.SelectedAccidentCategory; accidentRepository.Save(accident); return(Json(new { success = true })); }