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))); }
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))); }