public CourseGroup MapCourseGroupDTO(CourseGroupDTO courseGroup) { return(new CourseGroup { CourseId = courseGroup.CourseId, GroupId = courseGroup.GroupId }); }
public async Task <ActionResult <CourseGroupDTO> > PostCourseGroup(Guid courseId, CourseGroupDTO group) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (courseId != group.CourseId) { ModelState.AddModelError(string.Empty, "The courseId request parameter did not match the courseId property in the data."); return(BadRequest(ModelState)); } var cGroup = courseMapper.MapCourseGroupDTO(group); var existingGroup = await _context.CourseGroups.FindAsync(cGroup.CourseId, cGroup.GroupId); if (existingGroup != null) { ModelState.AddModelError(string.Empty, "The group you are trying to add already exists."); return(BadRequest(ModelState)); } var course = await _context.Courses .Include(c => c.Professor) .Include(c => c.CourseInfo) .FirstOrDefaultAsync(c => c.Id == cGroup.CourseId); var authorization = await authorizationService.AuthorizeAsync(User, course, AuthorizationConstants.CanUpdateCoursePolicy); if (!authorization.Succeeded) { return(Forbid()); } _context.CourseGroups.Add(cGroup); await _context.SaveChangesAsync(); cGroup = await _context.CourseGroups .Include(cg => cg.Group) .FirstOrDefaultAsync(cg => cg.CourseId == cGroup.CourseId && cg.GroupId == cGroup.GroupId); await cache.ClearCourseCacheAsync(courseId, course.CourseInfo.Slug); return(CreatedAtAction("GetCourse", new { id = cGroup.CourseId }, courseMapper.MapCourseGroup(cGroup))); }
private async Task OpenCourses(CourseGroupDTO courseGroup) { await _navigation.Navigate <CoursesViewModel, CourseGroupDTO>(courseGroup); }