public CrearProfesorModel ObtenerModeloCrearProfesor() { var diccionarioEmpresas = MostrarListadoEmpresas(); var model = new CrearProfesorModel { Empresas = diccionarioEmpresas, IdEmpresaSeleccionda = Guid.Empty }; return(model); }
private bool ValidateModel(CrearProfesorModel model, out string error) { error = string.Empty; if (model.IdEmpresaSeleccionda != Guid.Empty && !string.IsNullOrWhiteSpace(model.NombreEmpresa)) { error = "No introduzca nombre si ha escogido una empresa existente"; return(false); } if (_contexto.EmpresasProfesor.Any(x => x.Nombre == model.NombreEmpresa)) { error = "Esta empresa ya existe"; return(false); } return(true); }
//Retorna Guid para redirigir a detalles profesor tras creación public Guid InsertarProfesor(CrearProfesorModel model) { if (ValidateModel(model, out string error)) { Profesor profesor; if ((model.IdEmpresaSeleccionda == null || model.IdEmpresaSeleccionda == Guid.Empty) && (!string.IsNullOrWhiteSpace(model.NombreEmpresa))) { var empresa = new EmpresaProfesor { Id = Guid.NewGuid(), Nombre = model.NombreEmpresa }; profesor = new Profesor { Id = Guid.NewGuid(), Nombre = model.Nombre, EmpresaProfesor = empresa, FechaDeAlta = DateTime.Now, }; } else { profesor = new Profesor { Id = Guid.NewGuid(), Nombre = model.Nombre, IdEmpresaProfesor = model.IdEmpresaSeleccionda == Guid.Empty ? null : (Guid?)model.IdEmpresaSeleccionda, FechaDeAlta = DateTime.Now }; } _contexto.Add(profesor); _contexto.SaveChanges(); return(profesor.Id); } else { throw new ValidationException(error); } }
public IActionResult CrearProfesor(CrearProfesorModel model) { try { var idProfesor = _repositorio.InsertarProfesor(model); return(RedirectToAction("DetallesProfesor", new { idProfesor })); } catch (ValidationException vex) { model.Empresas = _repositorio.ObtenerListadoEmpresas(); model.Mensaje = vex.ToString(); return(View(model)); } catch { model.Empresas = _repositorio.ObtenerListadoEmpresas(); model.Mensaje = "¡Ha ocurrido un error inesperado! Estamos trabajando en ello"; return(View(model)); } }