Exemple #1
0
        public AdmissionsByAgePostModel GenerateModel()
        {
            Logger.LogInformation($"Starting Model Creation.");

            var searchData = Option.TargetDate;
            var trueDate   = Option.TrueDateTime;
            var doArchive  = Option.UseExternalArchiveSite;


            AdmissionsByAgeQueryTransformer.TargetDate = searchData;
            var result = AdmissionsByAgeQueryTransformer.QueryAndTransform();

            var queryRecords = new List <QueryRecord>()
                               .Union(result?.QueryRecords != null ? result?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .ToList();

            if (doArchive)
            {
                ArchiveQueryTransformer.ArchiveDate = trueDate;
                ArchiveQueryTransformer.QueryAndTransform(queryRecords);
            }


            var model = new AdmissionsByAgePostModel()
            {
                TargetDate         = searchData,
                AdmissionsByAge    = result,
                ArchiveInformation = queryRecords
            };

            return(model);
        }
        public TrendsPostModel GenerateModel()
        {
            var searchData = Option.TargetDate;
            var trueDate   = Option.TrueDateTime;
            var doArchive  = Option.UseExternalArchiveSite;

            LookbackEightDayQueryTransformer.TargetDate = searchData;
            var eighDays = LookbackEightDayQueryTransformer.QueryAndTransform();


            RegionBreakdownOverviewQueryTransformer.TargetDate = searchData;
            var overviewBreakdown = RegionBreakdownOverviewQueryTransformer.QueryAndTransform();

            RegionBreakdownNationalQueryTransformer.TargetDate = searchData;
            var nationalBreakdown = RegionBreakdownNationalQueryTransformer.QueryAndTransform();

            RegionBreakdownRegionQueryTransformer.TargetDate = searchData;
            var regionalBreakdown = RegionBreakdownRegionQueryTransformer.QueryAndTransform();


            RegionVaccineProgressOverviewQueryTransformer.TargetDate = searchData;
            var overviewVaccineProgress = RegionVaccineProgressOverviewQueryTransformer.QueryAndTransform();

            RegionVaccineProgressNationalQueryTransformer.TargetDate = searchData;
            var nationalVaccineProgress = RegionVaccineProgressNationalQueryTransformer.QueryAndTransform();

            var queryRecords = new List <QueryRecord>()
                               .Union(eighDays?.QueryRecords != null ? eighDays?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(overviewBreakdown?.QueryRecords != null ? overviewBreakdown?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(nationalBreakdown?.QueryRecords != null ? nationalBreakdown?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(regionalBreakdown?.QueryRecords != null ? regionalBreakdown?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(overviewVaccineProgress?.QueryRecords != null ? overviewVaccineProgress?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(nationalVaccineProgress?.QueryRecords != null ? nationalVaccineProgress?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .ToList();


            ArchiveQueryTransformer.ArchiveDate = trueDate;
            if (doArchive)
            {
                ArchiveQueryTransformer.QueryAndTransform(queryRecords);
            }

            var model = new TrendsPostModel()
            {
                TargetDate              = searchData,
                EightDayLookback        = eighDays.Records.First(),
                NationalRates           = nationalBreakdown,
                OverviewRates           = overviewBreakdown,
                RegionRates             = regionalBreakdown,
                OverviewVaccineProgress = overviewVaccineProgress,
                NationalVaccineProgress = nationalVaccineProgress,
                ArchiveInformation      = queryRecords
            };

            return(model);
        }
        public MainPostModel GenerateModel()
        {
            var searchData = Option.TargetDate;
            var trueDate   = Option.TrueDateTime;
            var doArchive  = Option.UseExternalArchiveSite;

            TitleTransformer.TargetDate = searchData;
            var title = TitleTransformer.QueryAndTransform();

            DailyQueryTransformer.TargetDate = searchData;
            var daily = DailyQueryTransformer.QueryAndTransform();

            var normalDays = new List <DayOfWeek>()
            {
                DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday
            };
            var weekendDays = new List <DayOfWeek>()
            {
                DayOfWeek.Saturday, DayOfWeek.Sunday
            };
            var catchUpDays = new List <DayOfWeek>()
            {
                DayOfWeek.Monday
            };

            LookbackJustVaccineQueryTransformer.TargetDate = searchData;
            Result <StandardRecord> vaccines = LookbackJustVaccineQueryTransformer.QueryAndTransform();

            Result <StandardRecord> lookback         = null;
            Result <StandardRecord> lookbackNational = null;

            if (normalDays.Contains(searchData.DayOfWeek))
            {
                LookbackQueryTransformer.TargetDate = searchData;
                lookback = LookbackQueryTransformer.QueryAndTransform();

                LookbackEnglandQueryTransformer.TargetDate = searchData;
                lookbackNational = LookbackEnglandQueryTransformer.QueryAndTransform();
            }

            Result <StandardRecord> catchUp         = null;
            Result <StandardRecord> catchUpNational = null;

            if (catchUpDays.Contains(searchData.DayOfWeek))
            {
                LookbackCatchUpQueryTransformer.TargetDate = searchData;
                catchUp = LookbackCatchUpQueryTransformer.QueryAndTransform();

                LookbackCatchUpEnglandQueryTransformer.TargetDate = searchData;
                catchUpNational = LookbackCatchUpEnglandQueryTransformer.QueryAndTransform();
            }

            NoneDailyQueryTransformer.TargetDate = searchData;
            var nonDaily = NoneDailyQueryTransformer.QueryAndTransform();

            var queryRecords = new List <QueryRecord>()
                               .Union(daily?.QueryRecords != null ? daily?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(vaccines?.QueryRecords != null ? vaccines?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(lookback?.QueryRecords != null ? lookback?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(lookbackNational?.QueryRecords != null ? lookbackNational?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(vaccines?.QueryRecords != null ? vaccines?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(catchUp?.QueryRecords != null ? catchUp?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(catchUpNational?.QueryRecords != null ? catchUpNational?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .Union(nonDaily?.QueryRecords != null ? nonDaily?.QueryRecords : Enumerable.Empty <QueryRecord>())
                               .ToList();

            if (doArchive)
            {
                ArchiveQueryTransformer.ArchiveDate = trueDate;
                ArchiveQueryTransformer.QueryAndTransform(queryRecords);
            }

            var model = new MainPostModel()
            {
                TargetDate                    = searchData,
                Title                         = title.Records.First(),
                DailyResult                   = daily,
                LookbackResult                = lookback,
                LookbackCatchUpResult         = catchUp,
                LookbackNationalResult        = lookbackNational,
                LookbackVaccines              = vaccines,
                LookbackCatchUpNationalResult = catchUpNational,
                NoneDailyQueryResult          = nonDaily,
                ArchiveInformation            = queryRecords
            };

            return(model);
        }