예제 #1
0
        public async Task <IEnumerable <DataCollectionPointsReportsByDateDto> > GetDataCollectionPointReports(ReportsFilter filters, DatesGroupingType groupingType)
        {
            var dataCollectionPointReports = _reportService.GetHealthRiskEventReportsQuery(filters)
                                             .Where(r => r.ReportType == ReportType.DataCollectionPoint);

            return(groupingType switch
            {
                DatesGroupingType.Day =>
                await GroupReportsByDataCollectionPointFeaturesAndDay(dataCollectionPointReports, filters.StartDate.Date, filters.EndDate.Date),

                DatesGroupingType.Week =>
                await GroupReportsByDataCollectionPointFeaturesAndWeek(dataCollectionPointReports, filters.StartDate.Date, filters.EndDate.Date),

                _ =>
                throw new InvalidOperationException()
            });
예제 #2
0
        public async Task <ReportByVillageAndDateResponseDto> GetReportsGroupedByVillageAndDate(ReportsFilter filters, DatesGroupingType groupingType)
        {
            var reports = _reportService.GetHealthRiskEventReportsQuery(filters);

            return(groupingType switch
            {
                DatesGroupingType.Day =>
                await GroupReportsByVillageAndDay(reports, filters.StartDate.Date, filters.EndDate.Date),

                DatesGroupingType.Week =>
                await GroupReportsByVillageAndWeek(reports, filters.StartDate.Date, filters.EndDate.Date),

                _ =>
                throw new InvalidOperationException()
            });
예제 #3
0
        public async Task <IList <ReportByFeaturesAndDateResponseDto> > GetReportsGroupedByFeaturesAndDate(ReportsFilter filters, DatesGroupingType groupingType)
        {
            var reports = _reportService.GetHealthRiskEventReportsQuery(filters);


            var humanReports = reports
                               .Where(r => r.ProjectHealthRisk.HealthRisk.HealthRiskType == HealthRiskType.Human);

            return(groupingType switch
            {
                DatesGroupingType.Day =>
                await GroupReportsByFeaturesAndDay(humanReports, filters.StartDate.Date, filters.EndDate.Date),

                DatesGroupingType.Week =>
                await GroupReportsByFeaturesAndWeek(humanReports, filters.StartDate.Date, filters.EndDate.Date),

                _ =>
                throw new InvalidOperationException()
            });