Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public async Task <ActionResult> EditCourse(EditCourseDto editCourseDto)
 {
     return(Ok(await _courseService.EditCourse(editCourseDto)));
 }
Esempio n. 4
0
        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);
        }