Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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());
            }
        }
Esempio n. 3
0
        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));
        }