public async Task <EnrollmentStudentResponse> EnrollStudentAsync(EnrollmentStudenRequest request) { var studiesExists = _studentContext.Studies.Any(s => s.Name == request.Studies); if (!studiesExists) { return(null); } var studiesList = _studentContext.Studies.Where(s => s.Name == request.Studies).ToList(); int idStudy = studiesList[0].IdStudy; int enrollmentID = 1; var enrollmentExists = _studentContext.Enrollment.Any(e => e.IdStudy == idStudy && e.Semester == 1); if (enrollmentExists) { var enrollmentsList = _studentContext.Enrollment.Where(e => e.IdStudy == idStudy && e.Semester == 1).ToList(); enrollmentID = enrollmentsList[0].IdEnrollment; } else { var m = new Enrollment { Semester = 1, IdStudy = idStudy, StartDate = DateTime.Now }; _studentContext.Enrollment.Add(e); _studentContext.SaveChanges(); enrollmentID = m.IdEnrollment; } var exists = _studentContext.Student.Any(s => s.IndexNumber == request.IndexNumber); if (exists) { return(null); } var isq = new InsertStudentRequest { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = request.BirthDate, IdEnrollment = enrollmentID, Password = request.Password }; await AddStudentAsync(isq); var enrollStudentList = _studentContext.Enrollment.Where(e => e.IdEnrollment == enrollmentID).ToList(); var esr = new EnrollmentStudentResponse { IdEnrollment = enrollStudentList[0].IdEnrollment, IdStudy = enrollStudentList[0].IdStudy, Semester = enrollStudentList[0].Semester, StartDate = enrollStudentList[0].StartDate }; return(esr); }
public async Task <IActionResult> EnrollStudentAsync(EnrollmentStudenRequest request) { EnrollmentStudentResponse enrollStudentResponse = await _db.EnrollStudentAsync(request); if (enrollStudentResponse == null) { return(BadRequest()); } return(this.StatusCode(201, enrollStudentResponse)); }