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