Beispiel #1
0
        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)));
        }
Beispiel #2
0
        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);
        }