Ejemplo n.º 1
0
        public async Task <IActionResult> Add(int courseId, int maxGrade, DateTime dueDate)
        {
            AddPeerGradeAssignmentDto dto = new AddPeerGradeAssignmentDto {
                CourseId   = courseId,
                LastEdited = DateTime.Now,
                MaxGrade   = maxGrade,
                DueDate    = dueDate
            };
            ServiceResponse <AddPeerGradeAssignmentDto> response = await _peerGradeAssignmentService.AddPeerGradeAssignment(dto);

            if (response.Success)
            {
                return(Ok(response));
            }
            return(NotFound(response));
        }
Ejemplo n.º 2
0
        public async Task <ServiceResponse <AddPeerGradeAssignmentDto> > AddPeerGradeAssignment(AddPeerGradeAssignmentDto dto)
        {
            ServiceResponse <AddPeerGradeAssignmentDto> response = new ServiceResponse <AddPeerGradeAssignmentDto>();
            User user = await _context.Users.Include(u => u.InstructedCourses)
                        .FirstOrDefaultAsync(u => u.Id == GetUserId());

            Course course = await _context.Courses
                            .FirstOrDefaultAsync(rg => rg.Id == dto.CourseId);

            if (course == null)
            {
                response.Data    = null;
                response.Message = "There is no course with this id";
                response.Success = false;
                return(response);
            }

            if (!doesUserInstruct(user, dto.CourseId))
            {
                response.Data    = null;
                response.Message = "You are not instructing this course";
                response.Success = false;
                return(response);
            }

            PeerGradeAssignment pga = await _context.PeerGradeAssignments.Include(pga => pga.AffiliatedCourse)
                                      .FirstOrDefaultAsync(pga => pga.CourseId == dto.CourseId);

            if (pga != null)
            {
                response.Data    = null;
                response.Message = "There is already a peer grading assignment for the course";
                response.Success = false;
                return(response);
            }

            if (dto.MaxGrade < 0)
            {
                response.Data    = null;
                response.Message = "Max grade should not be negative";
                response.Success = false;
                return(response);
            }


            PeerGradeAssignment createdPga = new PeerGradeAssignment
            {
                AffiliatedCourse = course,
                CourseId         = dto.CourseId,
                DueDate          = dto.DueDate,
                LastEdited       = dto.LastEdited,
                MaxGrade         = dto.MaxGrade
            };

            _context.PeerGradeAssignments.Add(createdPga);
            await _context.SaveChangesAsync();

            course.PeerGradeAssignment = pga;

            response.Data    = dto;
            response.Message = "You successfully entered peer grade assignment";
            response.Success = true;

            return(response);
        }