public async Task <IActionResult> Details([BindRequired] long?projectId) { if (!ModelState.IsValid) { return(RedirectToAction(nameof(Index))); } var readProjectRequest = new ReadProjectRequest { ProjectId = projectId.Value }; var project = await _projectApplicationService.Handle(readProjectRequest); var readAvailableTeamMembers = new ReadUsersRequest { Roles = new List <string> { "frontend", "backend", "tester" } }; var availableTeamMembers = await _userApplicationService.Handle(readAvailableTeamMembers); var viewModel = new ProjectDetailsViewModel { Project = project, AvailableUsers = availableTeamMembers .Select(user => new SelectListItem { Value = user.Id.ToString(), Text = user.FullName }) .ToList() }; return(View(viewModel)); }
public async Task <IActionResult> UpdateProjectBug([FromForm, Bind("ProjectId,BugId,Assignee,Title,Description,Priority,DueDate,Status")] UpdateProjectBugViewModel model) { if (!ModelState.IsValid) { var readProjectRequest = new ReadProjectRequest { ProjectId = model.ProjectId.Value }; var foundProject = await _projectApplicationService.Handle(readProjectRequest); model.TeamMembers = foundProject.TeamMembers .Select(user => new SelectListItem { Value = user.Id.ToString(), Text = user.FullName }) .ToList(); return(RedirectToAction(nameof(Details), new { projectId = model.ProjectId.Value })); } var updateProjectBugRequest = new UpdateProjectBugRequest { ProjectId = model.ProjectId.Value, BugId = model.BugId.Value, DueDate = model.DueDate.Value, Description = model.Description, Title = model.Title, Priority = model.Priority, Status = model.Status, Assignee = model.Assignee.Value }; await _projectApplicationService.Handle(updateProjectBugRequest); return(RedirectToAction(nameof(Details), new { projectId = model.ProjectId.Value })); }
public async Task <IActionResult> AddProjectBug([BindRequired] long?projectId) { 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 readAvailableTagsRequest = new ReadTagsRequest(); var availableTags = await _tagApplicationService.Handle(readAvailableTagsRequest); var viewModel = new AddProjectBugViewModel { ProjectId = projectId, TeamMembers = foundProject.TeamMembers .Select(user => new SelectListItem { Value = user.Id.ToString(), Text = user.FullName }) .ToList(), AvailableTags = availableTags .Select(tag => new SelectListItem { Value = tag.Id.ToString(), Text = tag.Name, }) .ToList() }; return(View(viewModel)); }
public ReadProjectResponse ReadProject(ReadProjectRequest request) { ReadProjectResponse response = new ReadProjectResponse(); response.ExceptionState = false; response.Project = _projectRepository.FindBy(request.Id).ConvertToProjectView(); return response; }
public async Task <ProjectResponse> Handle(ReadProjectRequest request) { var project = await _projectRepository.ReadById(request.ProjectId); if (project == default) { throw new ArgumentNullException(nameof(project)); } return(project.Adapt <ProjectResponse>()); }
public async Task <IActionResult> Update(long projectId) { var readUserRequest = new ReadProjectRequest { ProjectId = projectId }; var response = await _projectApplicationService.Handle(readUserRequest); var viewModel = response.Adapt <UpdateProjectViewModel>(); return(View(viewModel)); }
public async Task <IActionResult> AddProjectBug([FromForm, Bind("ProjectId,Priority,Title,DueDate,Description,Assignee,SelectedTags")] AddProjectBugViewModel model) { if (!ModelState.IsValid) { var readProjectRequest = new ReadProjectRequest { ProjectId = model.ProjectId.Value }; var foundProject = await _projectApplicationService.Handle(readProjectRequest); var readAvailableTagsRequest = new ReadTagsRequest(); var availableTags = await _tagApplicationService.Handle(readAvailableTagsRequest); model.TeamMembers = foundProject.TeamMembers .Select(user => new SelectListItem { Value = user.Id.ToString(), Text = user.FullName }) .ToList(); model.AvailableTags = availableTags .Select(tag => new SelectListItem { Value = tag.Id.ToString(), Text = tag.Name }) .ToList(); return(View(model)); } var addProjectBugRequest = new AddProjectBugRequest { ProjectId = model.ProjectId.Value, Priority = model.Priority, Title = model.Title, DueDate = model.DueDate.Value, Description = model.Description, Assignee = model.Assignee.Value, Tags = model.SelectedTags }; await _projectApplicationService.Handle(addProjectBugRequest); return(RedirectToAction(nameof(Details), new { projectId = model.ProjectId.Value })); }
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)); }