public async Task <ActionResult> SubmissionsHistory() { using (var client = apiClient()) { await SetBreadcrumb(); try { //Get all the compliance years currently in database and set it to latest one. //Get all the approved PCSs var allYears = await client.SendAsync(User.GetAccessToken(), new GetMemberRegistrationsActiveComplianceYears()); GetMemberRegistrationSchemesByComplianceYear getSchemesRequest = new GetMemberRegistrationSchemesByComplianceYear(FilterType.ApprovedOrWithdrawn, allYears[0]); List <SchemeData> schemes = await client.SendAsync(User.GetAccessToken(), getSchemesRequest); SubmissionsHistoryViewModel model = new SubmissionsHistoryViewModel { ComplianceYears = new SelectList(allYears), SchemeNames = new SelectList(schemes, "Id", "SchemeName"), SelectedYear = allYears.FirstOrDefault(), SelectedScheme = schemes.Count > 0 ? schemes.First().Id : Guid.Empty }; return(View(model)); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } return(View()); } } }
public async Task <List <SchemeData> > HandleAsync(GetMemberRegistrationSchemesByComplianceYear request) { authorization.EnsureCanAccessInternalArea(); Func <Scheme, bool> filter; switch (request.Filter) { case FilterType.Approved: filter = s => s.SchemeStatus == SchemeStatus.Approved; break; case FilterType.ApprovedOrWithdrawn: filter = s => (s.SchemeStatus == SchemeStatus.Approved) || (s.SchemeStatus == SchemeStatus.Withdrawn); break; default: throw new NotSupportedException(); } List <string> schemes = await schemeDataAccess.GetMemberRegistrationSchemesByComplianceYear(request.ComplianceYear); return(context.Schemes .Where(t => schemes.Contains(t.SchemeName)) .Where(filter) .OrderBy(s => s.SchemeName) .Select(s => schemeMap.Map(s)) .ToList()); }
public async Task <JsonResult> FetchSchemeForComplainceYear(int complianceYear) { using (var client = apiClient()) { try { GetMemberRegistrationSchemesByComplianceYear getSchemesRequest = new GetMemberRegistrationSchemesByComplianceYear(FilterType.ApprovedOrWithdrawn, complianceYear); List <SchemeData> schemes = await client.SendAsync(User.GetAccessToken(), getSchemesRequest); IEnumerable <SelectListItem> schemeNames = new SelectList(schemes, "Id", "SchemeName"); return(Json(schemeNames, JsonRequestBehavior.AllowGet)); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } return(Json(new { string.Empty })); } } }