public async Task <IActionResult> Create([FromBody] CreateAssignmentDto assignment) { var newAssignment = _mapper.Map <Assignment>(assignment); var result = await _repository.Create(newAssignment); return(CreatedAtAction(nameof(FindById), new { id = result.Id }, _mapper.Map <AssignmentDto>(result))); }
public async Task <IActionResult> CreateAssignments(CreateAssignmentDto dto) { var plan = await _planRepository.GetPlan(dto.PlanId); var validPatrolUsers = await _patrolRepository.GetUsersForPatrol(plan.PatrolId); //TODO: also make sure the user has the right to create these signatures if (User.RoleInPatrol(plan.PatrolId).CanMaintainAssignments()) { if (dto.ToUserIds.All(x => validPatrolUsers.Any(y => x == y.Id))) { await _assignmentService.CreateAssignments(dto.PlanId, dto.ToUserIds, dto.DueAt); return(Ok()); } else { //tried to assign to a user for which they don't have access return(Forbid()); } } else { //user does not have access to plan/patrol return(Forbid()); } }
public void Validate_OrderIsNull_ShouldHaveError() { var dto = new CreateAssignmentDto { Title = "Title", Description = "Description", Requester = "Me", Status = "To Do", Priority = "Low" }; _validator.ShouldHaveValidationErrorFor(x => x.Order, dto); }
public void Validate_DtoIsValid_ShouldNotHaveError() { var dto = new CreateAssignmentDto { 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); }
public void Validate_PriorityIsInvalid_ShouldHaveError() { var dto = new CreateAssignmentDto { Title = "Title", Description = "Description", Requester = "Me", Status = "To Do", Priority = "Critical", Order = 1 }; _validator.ShouldHaveValidationErrorFor(x => x.Priority, dto); }
public void Validate_StatusIsInvalid_ShouldHaveError() { var dto = new CreateAssignmentDto { Title = "Title", Description = "Description", Requester = "Me", Status = "Finished", Priority = "Low", Order = 1 }; _validator.ShouldHaveValidationErrorFor(x => x.Status, dto); }
public void Validate_RequesterIsEmpty_ShouldHaveError() { var dto = new CreateAssignmentDto { Title = "Title", Description = "Description", Requester = string.Empty, Status = "To Do", Priority = "Low", Order = 1 }; _validator.ShouldHaveValidationErrorFor(x => x.Requester, dto); }