public async Task <ActionResult <EstudianteDTO> > Create([FromBody] EstudianteDTO EstudianteDto) { // verificar que el campo nombre no venga nulo -> BadRequest if (EstudianteDto.Nombre == String.Empty || EstudianteDto.Nombre == null) { return(BadRequest("Por favor ingrese un nombre")); } if (EstudianteDto.Id == default(int)) { return(BadRequest("Por favor ingrese un identificador")); } //verificar que el curso que quiere matricularse el estudiante, exista // si no existe, retornar NotFound var Curso = await _dbContext.Cursos.FirstOrDefaultAsync(c => c.Id == EstudianteDto.CursoId); if (Curso == null) { return(NotFound("El curso no existe")); } // verificar que el estudiante no exista en la base // si existe, retortar conflicto var Estudiante = await _dbContext.Estudiantes.FirstOrDefaultAsync(e => e.Id == EstudianteDto.Id); if (Estudiante != null) { return(NotFound("El identificador del estudiante ya existe")); } // convertir los datos de DTO a Model var nuevoEstudiante = new Estudiante { Id = EstudianteDto.Id, Nombre = EstudianteDto.Nombre, CursoId = EstudianteDto.CursoId, }; // agregar el estudiante a la base de datos _dbContext.Estudiantes.Add(nuevoEstudiante); // guardar los cambios await _dbContext.SaveChangesAsync(); // retornar el estudiante DTO con los datos actualizados (updatedEstudianteDto) var estudianteConIdentificador = await _dbContext.Estudiantes.FirstOrDefaultAsync(e => e.Id == EstudianteDto.Id); if (estudianteConIdentificador == null) { return(NotFound()); } return(Ok(estudianteConIdentificador.ToDTO())); }
public async Task <ActionResult <EstudianteDTO> > Create([FromBody] EstudianteDTO EstudianteDto) { // verificar que el campo nombre no venga nulo -> BadRequest //verificar que el curso que quiere matricularse el estudiante, exista // si no existe, retornar NotFound // verificar que el estudiante no exista en la base // si existe, retortar conflicto // convertir los datos de DTO a Model // agregar el estudiante a la base de datos // guardar los cambios await _dbContext.SaveChangesAsync(); // retornar el estudiante DTO con los datos actualizados (updatedEstudianteDto) var updatedEstudianteDto = new EstudianteDTO(); return(CreatedAtAction(nameof(Get), new { id = EstudianteDto.Id }, updatedEstudianteDto)); }