public async Task <IActionResult> Detail(int projectId, int id) { // Summary // // Fetch bug, and project details from Endpoints and render associated view var vm = new BugDetailVm { Bug = await _bugsApi.GetBugAsync(id).ConfigureAwait(false), ProjectId = projectId, UserName = User.FindFirst(ClaimTypes.Name).Value.Split("@")?[0] ?? "guest" }; var project = await _projectsApi.GetProjectAsync(projectId).ConfigureAwait(false); vm.ProjectName = project.Title; return(View(vm)); }
public async Task <IActionResult> Save(EditBugVm vm) { // Summary // // Validate model, then call API to update bug, then render detail view if (!ModelState.IsValid) { return(View("EditBugForm", vm)); } var bug = vm.Bug; if (vm.Assigned) { bug.Status |= BugStatus.Assigned; } if (vm.Reopened) { bug.Status |= BugStatus.Reopened; } var apiResponse = await _bugsApi.PutBugAsync(bug.Id, bug).ConfigureAwait(false); if (!apiResponse.IsSuccessStatusCode) { _logger.LogInformation("Failed to update bug with id {0}", bug.Id); } // Fetch associated comments from API bug = await _bugsApi.GetBugAsync(bug.Id).ConfigureAwait(false); var detailVm = new BugDetailVm { Bug = bug, ProjectId = bug.ProjectId, ProjectName = vm.ProjectName, UserName = User.FindFirst(ClaimTypes.Name).Value.Split("@")?[0] ?? "guest" }; return(View("Detail", detailVm)); }