public async Task UpdateCourse(EditCourseDto newCourse) { await _teacherCourseService.RemoveRangeInCourseAsync(newCourse.Id); _teacherCourseService.AddRange(newCourse.TeacherIds, newCourse.Id); var course = await _courseRepository.GetAsync(newCourse.Id); course.Name = newCourse.Name; course.GroupId = newCourse.GroupId; _courseRepository.Update(course); await _courseRepository.UnitOfWork.SaveChangesAsync(); }
public void EditCourse(EditCourseDto dto) { Course editedCourse = _courseRepository.Find(dto.Id); if (editedCourse == null) { throw new DomainException("Failed to edit course."); } editedCourse.Title = dto.Title; editedCourse.Description = dto.Description; _courseRepository.Update(editedCourse); }
public async Task <ActionResult> EditCourse(EditCourseDto editCourseDto) { return(Ok(await _courseService.EditCourse(editCourseDto))); }
public async Task <ServiceResponse <GetCourseDto> > EditCourse(EditCourseDto editCourseDto) { ServiceResponse <GetCourseDto> serviceResponse = new ServiceResponse <GetCourseDto>(); User dbUser = await _context.Users .Include(c => c.InstructedCourses) .FirstOrDefaultAsync(c => c.Id == GetUserId()); if (dbUser == null) { serviceResponse.Success = false; serviceResponse.Message = "Current user not found."; return(serviceResponse); } if (editCourseDto.MaxGroupSize < 1 || editCourseDto.MinGroupSize > editCourseDto.MaxGroupSize) { serviceResponse.Success = false; serviceResponse.Message = "Minumum maxgroupsize should be 1 and minGroupsize should be less than or equal to maxgroupsize"; return(serviceResponse); } Course dbCourse = await _context.Courses .Include(c => c.Instructors).ThenInclude(cs => cs.User) .Include(c => c.Sections) .FirstOrDefaultAsync(c => c.Id == editCourseDto.Id); if (dbCourse == null) { serviceResponse.Success = false; serviceResponse.Message = "Course not found."; return(serviceResponse); } if (!dbCourse.Instructors.Any(c => c.UserId == dbUser.Id)) { serviceResponse.Success = false; serviceResponse.Message = "User does not have authority on this course."; return(serviceResponse); } SemesterType semesterType = SemesterType.Spring; if (editCourseDto.CourseSemester.Equals("Spring")) { semesterType = SemesterType.Spring; } else if (editCourseDto.CourseSemester.Equals("Summer")) { semesterType = SemesterType.Summer; } else if (editCourseDto.CourseSemester.Equals("Fall")) { semesterType = SemesterType.Fall; } else { serviceResponse.Success = false; serviceResponse.Message = "Semester type is given wrong."; return(serviceResponse); } dbCourse.Name = editCourseDto.Name; dbCourse.CourseSemester = semesterType; dbCourse.Year = editCourseDto.Year; dbCourse.CourseInformation = editCourseDto.CourseInformation; dbCourse.LockDate = editCourseDto.LockDate; dbCourse.MinGroupSize = editCourseDto.MinGroupSize; dbCourse.MaxGroupSize = editCourseDto.MaxGroupSize; dbCourse.IsActive = editCourseDto.IsActive; dbCourse.IsLocked = editCourseDto.IsLocked; dbCourse.CourseDescription = editCourseDto.CourseDescription; _context.Courses.Update(dbCourse); await _context.SaveChangesAsync(); serviceResponse.Data = await AddExtraDtos(_mapper.Map <GetCourseDto>(dbCourse)); return(serviceResponse); }