コード例 #1
0
ファイル: BugsController.cs プロジェクト: abarke28/BugTracker
        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));
        }
コード例 #2
0
ファイル: BugsController.cs プロジェクト: abarke28/BugTracker
        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));
        }