public IActionResult GetEnrollment(int EnrollId) { var Enroll = _EnrollRepository.GetEnrollment(EnrollId); if (Enroll == null) { return(NotFound($"The following Course Information with this :{EnrollId} is not found")); } return(Ok(Enroll)); }
public async Task <IActionResult> CreateEnrollment([FromBody] EnrollmentResource enrollmentResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var enrollment = mapper.Map <EnrollmentResource, Enrollment>(enrollmentResource); var student = await studentRepository.GetStudentByEmail(enrollmentResource.StudentEmail); enrollment.Student = student; var lecturer = await lecturerRepository.GetLecturer(enrollmentResource.LecturerId); enrollment.Lecturer = lecturer; SendMail(student.Name, lecturer.Email); //case: enrollment's type and project's type is different and the student has been already in group var group = await groupRepository.GetGroup(enrollmentResource.GroupId); if (group != null && group.Project.Type != enrollmentResource.Type) { ModelState.AddModelError("Error", "Enrollment's type and Project Type of Group are not the same."); return(BadRequest(ModelState)); } else if (group != null && !groupRepository.CheckEnrollment(group, enrollment)) { ModelState.AddModelError("Warning", "This group already has this student."); return(BadRequest(ModelState)); } else { enrollment.Group = group; } var quarter = await quarterRepository.GetQuarter(enrollmentResource.QuarterId); enrollment.Quarter = quarter; enrollmentRepository.AddEnrollment(enrollment); await unitOfWork.Complete(); enrollment = await enrollmentRepository.GetEnrollment(enrollment.EnrollmentId); var result = mapper.Map <Enrollment, EnrollmentResource>(enrollment); return(Ok(result)); }
public async Task <EnrollmentDto> GetEnrollment(int enrollmentId) { var userId = _httpContextAccessor.HttpContext.User.GetUserId(); var enrollment = await _enrollmentRepository.GetEnrollment(enrollmentId); if (enrollment == null || enrollment.StudentId != userId) { return(null); } return(_mapper.Map <EnrollmentDto>(enrollment)); }