public async Task <IActionResult> Configure(int id) { var report = _reportService.GetReportList().SingleOrDefault(_ => _.Id == id); if (report == null) { AlertDanger = $"Could not find report of type {id}."; return(RedirectToAction("Index")); } PageTitle = $"Configure {report.Name}"; string viewName = report.Name.Replace(" ", string.Empty); if (viewName.EndsWith("Report")) { viewName = viewName.Substring(0, viewName.Length - 6); } var systemList = await _siteService.GetSystemList(true); var branchList = await _siteService.GetAllBranches(true); var programList = await _siteService.GetProgramList(); var schoolDistrictList = await _schoolService.GetDistrictsAsync(); var schoolList = await _schoolService.GetSchoolsAsync(schoolDistrictList.FirstOrDefault()?.Id); var groupInfoList = await _userService.GetGroupInfosAsync(); var vendorCodeTypeList = await _vendorCodeService.GetTypeAllAsync(); var site = await GetCurrentSiteAsync(); var triggerList = await _triggerService.GetTriggersAwardingPrizesAsync(); foreach (var trigger in triggerList) { trigger.AwardPrizeName += $" ({trigger.Name})"; } return(View($"{viewName}Criteria", new ReportCriteriaViewModel { ReportId = id, ProgramStartDate = site.ProgramStarts ?? new DateTime(2018, 01, 01), SystemList = new SelectList(systemList, "Id", "Name"), BranchList = new SelectList(branchList, "Id", "Name"), ProgramList = new SelectList(programList, "Id", "Name"), SchoolDistrictList = new SelectList(schoolDistrictList, "Id", "Name"), SchoolList = new SelectList(schoolList, "Id", "Name"), GroupInfosList = new SelectList(groupInfoList, "Id", "Name"), VendorCodeTypeList = new SelectList(vendorCodeTypeList, "Id", "Description"), PrizeList = new SelectList(triggerList, "Id", "AwardPrizeName") })); }