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 } }; }
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"); })); }
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) })); }