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)); }
public async Task <IActionResult> Edit(int id) { // Summary // // Fetch associated Bug & Project Name, render view with VM var vm = new EditBugVm { Bug = await _bugsApi.GetBugAsync(id).ConfigureAwait(false) }; vm.Assigned = ((BugStatus.Assigned & vm.Bug.Status) == BugStatus.Assigned); vm.Reopened = ((BugStatus.Reopened & vm.Bug.Status) == BugStatus.Reopened); var project = await _projectsApi.GetProjectAsync(vm.Bug.ProjectId).ConfigureAwait(false); vm.ProjectName = project.Title; return(View("EditBugForm", vm)); }