Exemple #1
0
        public async Task <ActionResult <AssignmentDto> > UpdateAssignment(UpdateAssignmentDto assignmentDto)
        {
            if (assignmentDto == null)
            {
                return(BadRequest(InvalidAssignmentError));
            }
            if (assignmentDto.Start >= assignmentDto.End)
            {
                return(BadRequest("Start time was on or after end time."));
            }
            var savedAssignment = await AssignmentService.GetAssignment(assignmentDto.Id);

            if (savedAssignment == null)
            {
                return(NotFound());
            }
            if (!PermissionDataFiltersExtensions.HasAccessToLocation(User, Db, savedAssignment.LocationId))
            {
                return(Forbid());
            }

            var updateAssignment  = assignmentDto.Adapt <Assignment>();
            var updatedAssignment = await AssignmentService.UpdateAssignment(updateAssignment);

            return(Ok(updatedAssignment.Adapt <AssignmentDto>()));
        }
        public void Validate_OrderIsZero_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Order = 0
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Order, dto);
        }
        public void Validate_StatusIsInvalid_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Status = "Finished",
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Status, dto);
        }
        public void Validate_PriorityIsInvalid_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Priority = "Critical",
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Priority, dto);
        }
        public void Validate_StatusIsEmpty_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Status = string.Empty,
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Status, dto);
        }
        public void Validate_PriorityIsEmpty_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Priority = string.Empty,
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Priority, dto);
        }
        public void Validate_RequesterIsEmpty_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Requester = string.Empty,
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Requester, dto);
        }
        public void Validate_DescriptionIsEmpty_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Description = string.Empty,
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Description, dto);
        }
        public void Validate_TitleIsEmpty_ShouldHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Title = string.Empty,
            };

            _validator.ShouldHaveValidationErrorFor(x => x.Title, dto);
        }
Exemple #10
0
        public async Task <IActionResult> UpdateAssignment(UpdateAssignmentDto updatedAssignment)
        {
            ServiceResponse <GetAssignmentDto> response = await _assignmentService.UpdateAssignment(updatedAssignment);

            if (response.Data == null)
            {
                return(NotFound(response));
            }
            return(Ok(response));
        }
        public void Validate_DtoIsValid_ShouldNotHaveError()
        {
            var dto = new UpdateAssignmentDto
            {
                Title       = "Title",
                Description = "Description",
                Requester   = "Me",
                Status      = "To Do",
                Priority    = "Low",
                Order       = 1
            };

            _validator.ShouldNotHaveValidationErrorFor(x => new { x.Title, x.Description, x.Requester, x.Status, x.Priority, x.Order }, dto);
        }
Exemple #12
0
        public async Task <IActionResult> Update([FromRoute] Guid id, [FromBody] UpdateAssignmentDto assignment)
        {
            var existingAssignment = await _repository.FindById(id);

            if (existingAssignment == null)
            {
                return(NotFound());
            }

            _mapper.Map(assignment, existingAssignment);

            var result = await _repository.Update(existingAssignment);

            var response = _mapper.Map <AssignmentDto>(result);

            return(Ok(response));
        }
Exemple #13
0
        public async Task <ServiceResponse <GetAssignmentDto> > UpdateAssignment(UpdateAssignmentDto dto)
        {
            ServiceResponse <GetAssignmentDto> response = new ServiceResponse <GetAssignmentDto>();
            Assignment assignment = await _context.Assignments.FirstOrDefaultAsync(a => a.Id == dto.AssignmentId);

            if (assignment == null)
            {
                response.Data    = null;
                response.Message = "There is no submission under this id";
                response.Success = false;
                return(response);
            }
            User user = await _context.Users.Include(u => u.InstructedCourses)
                        .FirstOrDefaultAsync(u => u.Id == GetUserId());

            if (!user.InstructedCourses.Any(c => c.CourseId == assignment.AfilliatedCourseId))
            {
                response.Data    = null;
                response.Message = "You are not allowed to see for this assignment";
                response.Success = false;
                return(response);
            }
            assignment.AssignmentDescription = dto.AssignmenDescription;
            assignment.DueDate                = dto.DueDate;
            assignment.IsItGraded             = dto.IsItGraded;
            assignment.Title                  = dto.Title;
            assignment.AcceptedTypes          = dto.AcceptedTypes;
            assignment.MaxFileSizeInBytes     = dto.MaxFileSizeInBytes;
            assignment.VisibilityOfSubmission = dto.VisibiltyOfSubmission;
            assignment.CanBeGradedByStudents  = dto.CanBeGradedByStudents;
            _context.Assignments.Update(assignment);
            await _context.SaveChangesAsync();

            response.Data = _mapper.Map <GetAssignmentDto>(assignment);
            return(response);
        }
Exemple #14
0
        public async Task <ServiceResponse <GetAssignmentDto> > UpdateAssignment(UpdateAssignmentDto updatedAssignment)
        {
            ServiceResponse <GetAssignmentDto> serviceResponse = new ServiceResponse <GetAssignmentDto>();

            try
            {
                Assignment assignment = await _context.Assignments.Include(a => a.User).FirstOrDefaultAsync(a => a.Id == updatedAssignment.Id);

                if (assignment.User.Id == GetUserId())
                {
                    if ((updatedAssignment.Status == "Done" && updatedAssignment.TimeSpent == null) ||
                        (updatedAssignment.Status == "Done" && updatedAssignment.WayOfSolving == null)
                        )
                    {
                        serviceResponse.Success = false;
                        serviceResponse.Message = "Please enter informations about time spent for solving this assignment and way of solving.";
                    }
                    else if (DateTime.Compare(updatedAssignment.StartDate, updatedAssignment.EndDate) > 0)
                    {
                        serviceResponse.Success = false;
                        serviceResponse.Message = "Start date is later than End date.";
                    }
                    else
                    {
                        assignment.AssignmentDescription = updatedAssignment.AssignmentDescription;
                        assignment.StartDate             = updatedAssignment.StartDate;
                        assignment.EndDate    = updatedAssignment.EndDate;
                        assignment.Note       = updatedAssignment.Note;
                        assignment.Priority   = updatedAssignment.Priority;
                        assignment.EditDate   = DateTime.UtcNow;
                        assignment.UserIdEdit = GetUserId();
                        if (assignment.Status == "Done" && updatedAssignment.Status != "Done")
                        {
                            assignment.Status       = updatedAssignment.Status;
                            assignment.TimeSpent    = null;
                            assignment.WayOfSolving = null;
                        }
                        else
                        {
                            assignment.Status       = updatedAssignment.Status;
                            assignment.TimeSpent    = updatedAssignment.TimeSpent;
                            assignment.WayOfSolving = updatedAssignment.WayOfSolving;
                        }
                        _context.Assignments.Update(assignment);
                        await _context.SaveChangesAsync();

                        serviceResponse.Data = _mapper.Map <GetAssignmentDto>(assignment);
                    }
                }
                else
                {
                    serviceResponse.Success = false;
                    serviceResponse.Message = "Assignment not found.";
                }
            }
            catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = ex.Message;
            }
            return(serviceResponse);
        }