public async Task <BugResponse> Handle(ReadProjectBugRequest request) { var project = await _projectRepository.ReadById(request.ProjectId); if (project == default) { throw new ArgumentNullException("Project not found"); } var foundBug = project.Bugs .FirstOrDefault(bug => bug.Id == request.BugId); if (foundBug == default) { throw new ArgumentNullException("Bug for this project not found"); } return(foundBug.Adapt <BugResponse>()); }
public async Task <IActionResult> UpdateProjectBug([BindRequired] long?projectId, [BindRequired] long?bugId) { if (!ModelState.IsValid) { return(RedirectToAction(nameof(Details), new { projectId = projectId.Value })); } var readProjectRequest = new ReadProjectRequest { ProjectId = projectId.Value }; var foundProject = await _projectApplicationService.Handle(readProjectRequest); var readProjectBugRequest = new ReadProjectBugRequest { ProjectId = projectId.Value, BugId = bugId.Value }; var foundBug = await _projectApplicationService.Handle(readProjectBugRequest); var viewModel = new UpdateProjectBugViewModel { Assignee = foundBug.Assignee.Id, ProjectId = projectId, BugId = bugId, TeamMembers = foundProject.TeamMembers .Select(user => new SelectListItem { Value = user.Id.ToString(), Text = user.FullName }) .ToList(), Description = foundBug.Description, DueDate = foundBug.DueDate, Priority = foundBug.Priority, Status = foundBug.Status, Title = foundBug.Title }; return(View(viewModel)); }
public async Task <IActionResult> DetailProjectBug([BindRequired] long?projectId, [BindRequired] long?bugId) { if (!ModelState.IsValid) { return(RedirectToAction(nameof(Details), new { projectId = projectId.Value })); } var readProjectBugRequest = new ReadProjectBugRequest { ProjectId = projectId.Value, BugId = bugId.Value }; var bug = await _projectApplicationService.Handle(readProjectBugRequest); var viewModel = new ProjectBugDetailViewModel { ProjectId = projectId.Value, Bug = bug }; return(View(viewModel)); }