public ProjectControllerTests()
        {
            taskAttendant = mapper.Map <PersonBasicDto>(dbContext.Person.ToList().FirstOrDefault());
            projectTask   = new CreateProjectTaskDto
            {
                Attendant   = taskAttendant,
                AuthorId    = ADMIN_PERSON_ID,
                StatusId    = 1,
                PriorityId  = 1,
                Title       = "Task 1",
                Description = "Task 1"
            };

            newProject = new ProjectDto
            {
                AuthorId       = ADMIN_PERSON_ID,
                Title          = "New Project",
                Description    = "New Project",
                StartDate      = DateTime.Now.Date,
                ConclusionDate = DateTime.Now.AddMonths(1),
                AttendantIds   = new List <Guid> {
                    ADMIN_PERSON_ID
                },
                Tasks = new List <CreateProjectTaskDto>
                {
                    projectTask
                }
            };
        }
예제 #2
0
        public IActionResult CreateTask([FromQuery] int projectId, CreateProjectTaskDto dto)
        {
            return(withUser(Request, user =>
            {
                var result = _projectTaskService.CreateProjectTask(projectId, dto);

                if (result.ValidUser)
                {
                    var assigningTaskToSelf = user.Id == dto.AssignedTo.UserId;

                    var recipientList = assigningTaskToSelf
                        ? new int[] { }
                        : new int[] { dto.AssignedTo.UserId };

                    _reportingService.Report(new TaskAddedReport
                    {
                        AddedByUserId = user.Id,
                        ProjectId = projectId,
                        ProjectTaskId = result.Id
                    }, recipientList);
                }

                return result.ValidUser
                    ? new JsonResult(new { result.Id })
                    : ValidationProblem("Cannot assign a task on this project to a non-member");
            }));
        }
예제 #3
0
        public CreateProjectTaskResultDto CreateProjectTask(int projectId, CreateProjectTaskDto dto)
        {
            return(_userService.FindByEmail(dto.AssignedTo.Email).Get(assignee =>
            {
                var record = _projectTaskRepository.Save(new ProjectTaskRecord
                {
                    ProjectId = projectId,
                    UserId = assignee.Id,
                    Label = dto.Label,
                    Description = dto.Description
                });

                return new CreateProjectTaskResultDto {
                    ValidUser = true, Id = record.Id
                };
            }, () => new CreateProjectTaskResultDto {
                ValidUser = false
            }));
        }
        public async Task <ActionResult <ControllerResponse <GetProjectTaskDto> > > create(CreateProjectTaskDto createProjectTask)
        {
            string userId      = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier).ToString();
            var    projectTask = _mapper.Map <ProjectTask>(createProjectTask);

            projectTask.userId      = userId;
            projectTask.dateCreated = DateTime.UtcNow;
            await _projectTaskService.createAsync(projectTask);

            return(Created(new Uri($"{Request.Path}/{projectTask.id}", UriKind.Relative), new ControllerResponse <GetProjectTaskDto>
            {
                data = _mapper.Map <GetProjectTaskDto>(projectTask)
            }));
        }