public bool AddAssignments(string userId, int taskVariantId, AddAsignmentsViewModel viewModel) { var taskVariant = _context.TaskVariants .Include(tv => tv.TaskGroup) .FirstOrDefault(tv => tv.Id == taskVariantId); if (taskVariant == null) { throw new NotFoundException(); } if (!KaCakeUtils.IsCourseTeacher(_context, taskVariant.TaskGroup.CourseId, userId)) { throw new IllegalAccessException(); } if (viewModel.UsersToRemove != null) { _context.Assignments.RemoveRange( _context.Assignments.Where( assignment => viewModel.UsersToRemove.Contains(assignment.UserId) ) ); } if (viewModel.UsersToAdd != null) { _context.Assignments.AddRange(viewModel.UsersToAdd.Select(user => new Assignment() { TaskVariantId = viewModel.TaskVariantId, DeadlineUtc = viewModel.DeadlineUtc, UserId = user, ReviewerId = viewModel.ReviewerId })); } _context.SaveChanges(); return(true); }
public IActionResult AddAssignments(int taskVariantId, [FromBody] AddAsignmentsViewModel viewModel) { string userId = _userManager.GetUserId(HttpContext.User); try { if (_taskVariantLogic.AddAssignments(userId, taskVariantId, viewModel)) { return(Ok()); } else { return(StatusCode(500)); } } catch (NotFoundException) { return(NotFound()); } catch (IllegalAccessException) { return(Challenge()); } }
public IActionResult AddAssignments(AddAsignmentsViewModel viewModel) { string userId = _userManager.GetUserId(User); if (ModelState.IsValid) { if (_taskVariantLogic.AddAssignments(userId, viewModel.TaskVariantId, viewModel)) { return(RedirectToAction("View", new { id = viewModel.TaskVariantId })); } } var taskVariant = _context.TaskVariants .Include(tv => tv.TaskGroup) .FirstOrDefault(tv => tv.Id == viewModel.TaskVariantId); if (taskVariant == null) { return(NotFound()); } PopulateAddAssignmentData(taskVariant.TaskGroup.CourseId, taskVariant.Id); return(View(viewModel)); }