Пример #1
0
        public async Task <IActionResult> GetById(int id)
        {
            AssignmentWithConcrete assignment =
                await _assignmentService.GetAssignmentById(id, _userService.UserId, x => x.Subject,
                                                           x => x.Attachments);

            if (assignment == null)
            {
                return(NotFound());
            }
            if (!await _assignmentService.CheckUserAsync(assignment.Assignment, _userService.UserId))
            {
                return(Forbid());
            }

            return(Ok(_mapper.Map <AssignmentDetailsDtoStudent>(assignment)));
        }
Пример #2
0
        public async Task <IActionResult> Submit(int assignmentId, StudentAssignmentDto assignmentDto)
        {
            #region Checks

            AssignmentWithConcrete assignment =
                await _assignmentService.GetAssignmentById(assignmentId, _userService.UserId);

            if (assignment == null)
            {
                return(NotFound());
            }
            if (assignment.StudentAssignment != null)
            {
                return(Conflict());
            }

            Group group = await _groupService.GetByIdAsync(assignmentDto.GroupId);

            if (group == null)
            {
                return(NotFound());
            }
            if (!_groupService.StudentExists(_userService.UserId, group.Id))
            {
                return(Forbid());
            }

            #endregion

            StudentAssignment studentAssignment =
                _assignmentService.Add(assignmentDto, _userService.CurrentUser, assignmentId);
            studentAssignment.GroupId = group.Id;
            await _db.SaveChangesAsync();

            //await _teacherHub.NewAssignment(assignmentId, studentAssignment.Id, assignment.Assignment.TeacherId);

            return(CreatedAtAction(nameof(GetById), new { studentAssignment.Id },
                                   _mapper.Map <StudentAssignmentDto>(assignment.StudentAssignment)));
        }