public IActionResult InsertOrUpdateModality(int?id) { ModalityViewModel modalityViewModel = new ModalityViewModel() { Modality = new Modality(), EducationLevelList = _unitWork.EducationLevel.GetAll().Select(el => new SelectListItem { Text = el.Name, Value = el.Id.ToString() }) }; if (id == null) { modalityViewModel.Modality.Active = true; // Crea un nuevo registro return(View(modalityViewModel)); } // Actualiza el registro modalityViewModel.Modality = _unitWork.Modality.Get(id.GetValueOrDefault()); if (modalityViewModel == null) { return(NotFound()); } return(View(modalityViewModel)); }
public IActionResult InsertOrUpdateModality(ModalityViewModel modalityViewModel) { if (ModelState.IsValid) { Action action = Action.None; if (modalityViewModel.Modality.Id == 0) { action = Action.Create; _unitWork.Modality.Add(modalityViewModel.Modality); } else { action = Action.Update; _unitWork.Modality.Update(modalityViewModel.Modality); } try { _unitWork.Save(); if (action == Action.Create) { _notyfService.Success("Modalidad creada correctamente."); } if (action == Action.Update) { _notyfService.Success("Modalidad actualizada correctamente."); } return(RedirectToAction(nameof(Index))); } catch (DbUpdateException dbUpdateException) { if (dbUpdateException.InnerException.Message.Contains("IX_Modalities_Name")) { _notyfService.Error("Ya existe una modalidad con el mismo nombre."); modalityViewModel.EducationLevelList = _unitWork.EducationLevel.GetAll().Select(el => new SelectListItem { Text = el.Name, Value = el.Id.ToString() }); return(View(modalityViewModel)); } else { ModelState.AddModelError(string.Empty, dbUpdateException.InnerException.Message); } } catch (Exception exception) { ModelState.AddModelError(string.Empty, exception.Message); } } else { modalityViewModel.EducationLevelList = _unitWork.EducationLevel.GetAll().Select(el => new SelectListItem { Text = el.Name, Value = el.Id.ToString() }); if (modalityViewModel.Modality.Id != 0) { modalityViewModel.Modality = _unitWork.Modality.Get(modalityViewModel.Modality.Id); } } return(View(modalityViewModel)); }