public IActionResult InsertOrUpdateCareerPerson(int?id) { CareerPersonViewModel careerPersonViewModel = new CareerPersonViewModel() { CareerPerson = new CareerPerson(), CareerList = _unitWork.Career.GetAll(orderBy: cpe => cpe.OrderBy(idt => idt.Name)).Select(cpe => new SelectListItem { Text = cpe.Name, Value = cpe.Id.ToString() }), PersonList = _unitWork.Person.GetAll(orderBy: pe => pe.OrderBy(pe => pe.Surnames + pe.Names)).Select(pe => new SelectListItem { Text = pe.Names + " " + pe.Surnames, Value = pe.Id.ToString() }).ToList(), }; // Crea un nuevo registro if (id == null) { careerPersonViewModel.CareerPerson.Active = true; return(View(careerPersonViewModel)); } // Actualiza el registro careerPersonViewModel.CareerPerson = _unitWork.CareerPerson.Get(id.GetValueOrDefault()); if (careerPersonViewModel.CareerPerson == null) { return(NotFound()); } return(View(careerPersonViewModel)); }
public IActionResult InsertOrUpdateCareerPerson(CareerPersonViewModel careerPersonViewModel) { if (ModelState.IsValid) { Action action = Action.None; if (careerPersonViewModel.CareerPerson.Id == 0) { action = Action.Create; _unitWork.CareerPerson.Add(careerPersonViewModel.CareerPerson); } else { action = Action.Update; _unitWork.CareerPerson.Update(careerPersonViewModel.CareerPerson); } try { _unitWork.Save(); if (action == Action.Create) { _notyfService.Success("Programa Persona creado correctamente."); } if (action == Action.Update) { _notyfService.Success("Programa Persona actualizado correctamente."); } return(RedirectToAction(nameof(Index))); } catch (DbUpdateException dbUpdateException) { if (dbUpdateException.InnerException.Message.Contains("IX_CareerPeople_CareerId_PersonId")) { _notyfService.Error("Ya existe una Persona con el mismo programa."); careerPersonViewModel.CareerList = _unitWork.Career.GetAll().Select(ca => new SelectListItem { Text = ca.Name, Value = ca.Id.ToString() }); careerPersonViewModel.PersonList = _unitWork.Person.GetAll().Select(pe => new SelectListItem { Text = pe.Names + " " + pe.Surnames, Value = pe.Id.ToString() }).ToList(); return(View(careerPersonViewModel)); } else { ModelState.AddModelError(string.Empty, dbUpdateException.InnerException.Message); } } catch (Exception exception) { ModelState.AddModelError(string.Empty, exception.Message); } } else { careerPersonViewModel.CareerList = _unitWork.Career.GetAll().Select(ca => new SelectListItem { Text = ca.Name, Value = ca.Id.ToString() }); careerPersonViewModel.PersonList = _unitWork.Person.GetAll(orderBy: pe => pe.OrderBy(pe => pe.Surnames + pe.Names)).Select(pe => new SelectListItem { Text = pe.Names + " " + pe.Surnames, Value = pe.Id.ToString() }); if (careerPersonViewModel.CareerPerson.Id != 0) { careerPersonViewModel.CareerPerson = _unitWork.CareerPerson.Get(careerPersonViewModel.CareerPerson.Id); } } return(View(careerPersonViewModel)); }