public async Task <IActionResult> PutStudent(string id, Student student) { if (id != student.IndexNumber) { return(BadRequest()); } _context.Entry(student).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!StudentExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult> EnrollStudentAsync(EnrollStudentRequest request) { var studies = await _context.Studies.FirstOrDefaultAsync(s => s.Name == request.Studies); if (studies == null) { return(BadRequest()); } var lastEnrollment = _context.Enrollments.AsNoTracking().OrderByDescending(e => e.IdEnrollment).First().IdEnrollment; var enrollment = await _context.Enrollments.FirstOrDefaultAsync(e => e.IdStudy == studies.IdStudy && e.Semester == 1); if (enrollment == null) { var newEnrolment = new Enrollment { IdEnrollment = lastEnrollment + 1, IdStudy = studies.IdStudy, Semester = 1, StartDate = DateTime.Now }; enrollment = newEnrolment; await _context.Enrollments.AddAsync(enrollment); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { return(Conflict()); } } var student = await _context.Students.FirstOrDefaultAsync(stud => stud.IndexNumber == request.IndexNumber); if (student == null) { var newStudent = new Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = request.BirthDate, IdEnrollment = enrollment.IdEnrollment }; await _context.Students.AddAsync(newStudent); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { return(Conflict()); } } return(Ok("Enrolled")); }