public byte[] GetExcelData(List <ExportDataCollectorsResponseDto> dataCollectors, IDictionary <string, string> stringResources) { var columnLabels = new List <string> { GetStringResource(stringResources, "dataCollectors.export.dataCollectorType"), GetStringResource(stringResources, "dataCollectors.export.name"), GetStringResource(stringResources, "dataCollectors.export.displayName"), GetStringResource(stringResources, "dataCollectors.export.phoneNumber"), GetStringResource(stringResources, "dataCollectors.export.additionalPhoneNumber"), GetStringResource(stringResources, "dataCollectors.export.sex"), GetStringResource(stringResources, "dataCollectors.export.birthGroupDecade"), GetStringResource(stringResources, "dataCollectors.export.region"), GetStringResource(stringResources, "dataCollectors.export.district"), GetStringResource(stringResources, "dataCollectors.export.village"), GetStringResource(stringResources, "dataCollectors.export.zone"), GetStringResource(stringResources, "dataCollectors.export.latitude"), GetStringResource(stringResources, "dataCollectors.export.longitude"), GetStringResource(stringResources, "dataCollectors.export.supervisor"), GetStringResource(stringResources, "dataCollectors.export.trainingStatus") }; var dataCollectorsData = dataCollectors .Select(dc => new { DataCollectorType = dc.DataCollectorType == DataCollectorType.Human ? GetStringResource(stringResources, "dataCollectors.dataCollectorType.human") : dc.DataCollectorType == DataCollectorType.CollectionPoint ? GetStringResource(stringResources, "dataCollectors.dataCollectorType.collectionPoint") : string.Empty, dc.Name, dc.DisplayName, dc.PhoneNumber, dc.AdditionalPhoneNumber, dc.Sex, dc.BirthGroupDecade, dc.Region, dc.District, dc.Village, dc.Zone, dc.Latitude, dc.Longitude, dc.Supervisor, dc.TrainingStatus }); return(_excelExportService.ToCsv(dataCollectorsData, columnLabels)); }
public async Task <byte[]> GetExcelData(List <IReportListResponseDto> reports) { var userName = _authorizationService.GetCurrentUserName(); var userApplicationLanguage = _nyssContext.Users.FilterAvailable() .Where(u => u.EmailAddress == userName) .Select(u => u.ApplicationLanguage.LanguageCode) .Single(); var stringResources = (await _stringsResourcesService.GetStringsResources(userApplicationLanguage)).Value; var columnLabels = new List <string> { GetStringResource(stringResources, "reports.export.date"), GetStringResource(stringResources, "reports.export.time"), GetStringResource(stringResources, "reports.list.status"), GetStringResource(stringResources, "reports.list.dataCollectorDisplayName"), GetStringResource(stringResources, "reports.list.dataCollectorPhoneNumber"), GetStringResource(stringResources, "reports.list.region"), GetStringResource(stringResources, "reports.list.district"), GetStringResource(stringResources, "reports.list.village"), GetStringResource(stringResources, "reports.list.zone"), GetStringResource(stringResources, "reports.list.healthRisk"), GetStringResource(stringResources, "reports.list.malesBelowFive"), GetStringResource(stringResources, "reports.list.malesAtLeastFive"), GetStringResource(stringResources, "reports.list.femalesBelowFive"), GetStringResource(stringResources, "reports.list.femalesAtLeastFive"), GetStringResource(stringResources, "reports.export.totalBelowFive"), GetStringResource(stringResources, "reports.export.totalAtLeastFive"), GetStringResource(stringResources, "reports.export.totalMale"), GetStringResource(stringResources, "reports.export.totalFemale"), GetStringResource(stringResources, "reports.export.total"), GetStringResource(stringResources, "reports.export.location"), GetStringResource(stringResources, "reports.export.message"), GetStringResource(stringResources, "reports.export.epiYear"), GetStringResource(stringResources, "reports.export.epiWeek") }; var reportData = reports.Select(r => { var report = (ExportReportListResponseDto)r; return(new { Date = report.DateTime.ToString("yyyy-MM-dd"), Time = report.DateTime.ToString("HH:mm"), Status = GetReportStatus(report, stringResources), report.DataCollectorDisplayName, report.PhoneNumber, report.Region, report.District, report.Village, report.Zone, report.HealthRiskName, report.CountMalesBelowFive, report.CountMalesAtLeastFive, report.CountFemalesBelowFive, report.CountFemalesAtLeastFive, TotalBelowFive = report.CountFemalesBelowFive + report.CountMalesBelowFive, TotalAtLeastFive = report.CountMalesAtLeastFive + report.CountFemalesAtLeastFive, TotalMale = report.CountMalesAtLeastFive + report.CountMalesBelowFive, TotalFemale = report.CountFemalesAtLeastFive + report.CountFemalesBelowFive, Total = report.CountMalesBelowFive + report.CountMalesAtLeastFive + report.CountFemalesBelowFive + report.CountFemalesAtLeastFive, Location = report.Location != null ? $"{report.Location.Y}/{report.Location.Coordinate.X}" : "", report.Message, EpiYear = report.EpiWeek, EpiWeek = report.EpiYear }); }); return(_excelExportService.ToCsv(reportData, columnLabels)); }