public MediatorResponse <byte[]> GetRegisteredCandidatesReportBytes(ReportRegisteredCandidatesParameters parameters) { try { var reportResult = _reportingRepo.ReportRegisteredCandidates(parameters.Type, parameters.FromDate.Date, parameters.ToDate.Date, parameters.AgeRange, parameters.Region, parameters.LocalAuthority, parameters.MarketMessagesOnly); var headerBuilder = new StringBuilder(); headerBuilder.AppendLine("PROTECT,,,,,,,,,,,,,,,,,,"); headerBuilder.AppendLine(",,,,,,,,,,,,,,,,,,,"); headerBuilder.AppendLine(",,,,,,,,,,,,,,,,,,,"); var bytes = parameters.IncludeCandidateIds ? GetCsvBytes <ReportRegisteredCandidatesResultItem, ReportRegisteredCandidatesWithIdsResultItemClassMap>( reportResult, headerBuilder.ToString()) : GetCsvBytes <ReportRegisteredCandidatesResultItem, ReportRegisteredCandidatesResultItemClassMap>( reportResult, headerBuilder.ToString()); return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.Ok, bytes)); } catch (Exception ex) { _logService.Warn(ex); return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.Error, new byte[0])); } }
public ActionResult ValidateRegisteredCandidatesCsv(ReportRegisteredCandidatesParameters parameters) { var validationResponse = _reportingMediator.ValidateRegisteredCandidatesParameters(parameters); switch (validationResponse.Code) { case ReportingMediatorCodes.ReportCodes.Ok: return(View("RegisteredCandidatesCsv", validationResponse.ViewModel)); case ReportingMediatorCodes.ReportCodes.ValidationError: default: ModelState.Clear(); validationResponse.ValidationResult.AddToModelStateWithSeverity(ModelState, string.Empty); return(View("RegisteredCandidatesCsv", validationResponse.ViewModel)); } }
public ActionResult DownloadRegisteredCandidatesCsv(ReportRegisteredCandidatesParameters parameters) { var response = _reportingMediator.GetRegisteredCandidatesReportBytes(parameters); switch (response.Code) { case ReportingMediatorCodes.ReportCodes.Ok: return(File(response.ViewModel, "text/csv", "RegisteredCandidatesCsv.csv")); case ReportingMediatorCodes.ReportCodes.Error: SetUserMessage(response.Message); return(View("RegisteredCandidatesCsv", parameters)); default: throw new InvalidMediatorCodeException(response.Code); } }
public MediatorResponse <ReportRegisteredCandidatesParameters> GetRegisteredCandidatesReportParams() { var result = new ReportRegisteredCandidatesParameters(); try { var regions = _reportingRepo.GeoRegionsIncludingAll(); result.RegionList = regions.ToListItemList(); var localAuthorities = _reportingRepo.GetLocalAuthorities(); result.LocalAuthoritiesList = localAuthorities.ToListItemList(); return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.Ok, result)); } catch (Exception ex) { _logService.Warn(ex); return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.Error, result)); } }
public MediatorResponse <ReportRegisteredCandidatesParameters> ValidateRegisteredCandidatesParameters(ReportRegisteredCandidatesParameters parameters) { var response = GetRegisteredCandidatesReportParams(); if (response.Code == ReportingMediatorCodes.ReportCodes.Error) { return(response); } parameters.RegionList = response.ViewModel.RegionList; parameters.LocalAuthoritiesList = response.ViewModel.LocalAuthoritiesList; var validationResult = _reportDateRangeValidator.Validate(parameters); parameters.IsValid = validationResult.IsValid; if (!validationResult.IsValid) { return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.ValidationError, parameters, validationResult)); } return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.Ok, parameters, validationResult)); }