Ejemplo n.º 1
0
        public void EnsureBienniumCalculationIsLikelyCorrectTest()
        {
            int currentBienniumAccordingToTheDatabase = CurrentBiennium.GetCurrentBienniumFiscalYearFromDatabase();
            int currentFiscalYear = LtInfo.Common.DateUtilities.GetCurrentFiscalYear();

            Assert.That(currentFiscalYear - currentBienniumAccordingToTheDatabase < 2, $"We now appear to be outside the current biennium, which is [{currentBienniumAccordingToTheDatabase}-{currentBienniumAccordingToTheDatabase + 1}]. Current Fiscal year is {currentFiscalYear}.");
        }
        public void DownloadGrantExpendituresTableForAllFiscalYears()
        {
            Logger.Info($"Starting '{JobName}' DownloadGrantExpendituresTableForAllFiscalYears");
            ClearOutdatedSocrataDataMartRawJsonImportsTableEntries();

            // See how current the data is
            DateTime lastFinanceApiLoadDate = FinanceApiLastLoadUtil.GetLastLoadDate();

            // 2001 is the first biennium for which API returned data. This is WAY farther back than needed, but
            // harmless to overreach, since we only use data for which we have matching PI/PC.
            const int beginBienniumFiscalYear = 2001;

            const int bienniumStep = 2;

            // Go at least one biennium beyond the current one
            var endBienniumFiscalYear = CurrentBiennium.GetCurrentBienniumFiscalYearFromDatabase() + bienniumStep;

            // Step through all the desired Bienniums
            for (var bienniumFiscalYear = beginBienniumFiscalYear; bienniumFiscalYear <= endBienniumFiscalYear; bienniumFiscalYear += bienniumStep)
            {
                // Since only 2007 current blows up, we want to process all the other available years in the meantime.
                // This sends us and email reminding us something is wrong, and there is also good data about success in the tables itself.
                // -- SLG 6/27/2019 -- https://projects.sitkatech.com/projects/wa_dnr_forest_health_tracker/cards/1635
                try
                {
                    ImportExpendituresForGivenBienniumFiscalYear(bienniumFiscalYear, lastFinanceApiLoadDate);
                }
                catch (Exception e)
                {
                    Logger.Error($"Error importing Expenditures for Biennium Fiscal Year {bienniumFiscalYear}: {e.Message}");
                }
            }

            Logger.Info($"Ending '{JobName}' DownloadGrantExpendituresTableForAllFiscalYears");
        }
Ejemplo n.º 3
0
        public void CheckBienniumFiscalYearCalculation()
        {
            int currentFiscalYear = LtInfo.Common.DateUtilities.GetCurrentFiscalYear();

            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2019, 7, 1)) == 2019);
            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2020, 1, 1)) == 2019);
            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2020, 7, 1)) == 2019);
            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2021, 1, 1)) == 2019);

            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2021, 7, 1)) == 2021);
            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2022, 1, 1)) == 2021);
            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2022, 7, 1)) == 2021);
            Assert.That(CurrentBiennium.GetBienniumFiscalYearForDate(new DateTime(2023, 1, 1)) == 2021);
        }