Пример #1
0
        private void PopulateWthExpUsageTable()
        {
            Log.Information("Starting PopulateWthExpUsage()...");

            string fromDateStartStr = $"{fromDateStart.Month}-{fromDateStart.Day}-{fromDateStart.Year}";

            try
            {
                List <ReadingsQueryResult> readings = _weatherRepository.GetReadings(fromDateStartStr);

                expectedWthExpUsageInserts = readings.Count;

                foreach (ReadingsQueryResult result in readings)
                {
                    try
                    {
                        List <WeatherData> weatherDataList = _weatherRepository.GetWeatherDataByZipStartAndEndDate(result.Zip, result.DateStart, result.DateEnd);
                        if (weatherDataList.Count != result.Days)
                        {
                            Log.Error($"WeatherDataList.Count != reading.Days; WeatherDataList.Count = {weatherDataList.Count} reading.Days = {result.Days}. " +
                                      $"RdngID: {result.RdngID}.");
                        }
                        HeatingCoolingDegreeDays heatingCoolingDegreeDays = HeatingCoolingDegreeDaysValueOf(result, weatherDataList);

                        DoCalculation(result, heatingCoolingDegreeDays);
                    }
                    catch (Exception e)
                    {
                        Log.Error(e.Message);
                        Log.Error(e.StackTrace);
                    }
                }

                int expectedTotalWthExpUsageEntries = _weatherRepository.GetExpectedWthExpUsageRowCount(fromDateStartStr);
                int actualTotalWthExpUsageEntries   = _weatherRepository.GetActualWthExpUsageRowCount();

                Log.Information($"Finished PopulateWthExpUsage(). Expected inserts: {expectedWthExpUsageInserts}, Actual: {actualWthExpUsageInserts}");
                Log.Information($"Expected WthExpUsage total entries: {expectedTotalWthExpUsageEntries}, Actual: {actualTotalWthExpUsageEntries}.\n");
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message + " " + ex.StackTrace);
            }

            expectedWthExpUsageInserts = 0;
            actualWthExpUsageInserts   = 0;
        }
Пример #2
0
        private void PopulateWthExpUsageTable()
        {
            Log.Information("Starting PopulateWthExpUsage()...");

            string fromDateStartStr = $"{_fromDateStart.Month}-{_fromDateStart.Day}-{_fromDateStart.Year}";

            try
            {
                List <ReadingsQueryResult> readings = _weatherRepository.GetReadings(fromDateStartStr);

                expectedWthExpUsageInserts = readings.Count;

                foreach (ReadingsQueryResult result in readings)
                {
                    //Console.WriteLine(result.DateStart + ", " + result.DateEnd + ", " + result.Days + ",  result.B1 = " + result.B1 + ",  result.B2 = " + result.B2 + ", result.B3 = " + result.B3 + ",  result.B4 = " + result.B4);
                    try
                    {
                        List <WeatherData>       weatherDataList          = _weatherRepository.GetWeatherDataByZipStartAndEndDate(result.Zip, result.DateStart, result.DateEnd);
                        HeatingCoolingDegreeDays heatingCoolingDegreeDays = HeatingCoolingDegreeDaysValueOf(result, weatherDataList);

                        CalculateExpUsage(result, heatingCoolingDegreeDays);
                    }
                    catch (Exception e)
                    {
                        Log.Error(e.Message);
                        Log.Error(e.StackTrace);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                Log.Error(ex.StackTrace);
            }

            int expectedTotalWthExpUsageEntries = _weatherRepository.GetExpectedWthExpUsageRowCount(fromDateStartStr);
            int actualTotalWthExpUsageEntries   = _weatherRepository.GetActualWthExpUsageRowCount();

            Log.Information($"Finished PopulateWthExpUsage(). Expected inserts: {expectedWthExpUsageInserts}, Actual: {actualWthExpUsageInserts}");
            Log.Information($"Expected WthExpUsage total entries: {expectedTotalWthExpUsageEntries}, Actual: {actualTotalWthExpUsageEntries}.\n");

            expectedWthExpUsageInserts = 0;
            actualWthExpUsageInserts   = 0;
        }
Пример #3
0
        public void PopulateWthExpUsageTable()
        {
            Log.Information("Starting PopulateWthExpUsage()...");

            //string fromDateStartStr = $"{_fromDateStart.Month}-{_fromDateStart.Day}-{_fromDateStart.Year}";

            try
            {
                List <ReadingsQueryResult> readings = _weatherRepository.GetReadings(_MoID);

                _expectedWthExpUsageInserts = readings.Count;

                foreach (ReadingsQueryResult result in readings)
                {
                    try
                    {
                        if (!result.R2.HasValue
                            //|| result.R2.Value > 1
                            //|| result.R2 < 0
                            )
                        {
                            continue;
                        }

                        if (result.R2.Value < 0.7500)
                        {
                            bool successAndNoModel = _weatherRepository.InsertWthExpUsage(result.RdngID, result.Units ?? 0);

                            if (successAndNoModel)
                            {
                                _actualWthExpUsageInserts++;
                                Log.Debug($"Inserted into WthExpUsage (No Weather Model) >> RdngID: {result.RdngID} ExpUsage: {result.Units ?? 0} << " +
                                          $"AccID/UtilID/UnitID: {result.AccID}/{result.UtilID}/{result.UnitID}, Actual Units: {result.Units}.");
                            }
                            else
                            {
                                Log.Error($"Failed attempt: Insert into WthExpUsage (without an accepted weather model) " +
                                          $">> RdngID: {result.RdngID} ExpUsage: {result.Units ?? 0} << " +
                                          $"AccID/UtilID/UnitID: {result.AccID}/{result.UtilID}/{result.UnitID}, Actual Units: {result.Units}");
                            }
                            continue;
                        }

                        if (result.DateStart == DateTime.MinValue || result.DateEnd == DateTime.MinValue)
                        {
                            throw new Exception("DateStart and/or DateEnd is null.");
                        }

                        int daysInReading = result.DateEnd.Subtract(result.DateStart).Days;

                        List <WeatherData> weatherDataList = _weatherRepository.GetWeatherDataByZipStartAndEndDate(result.Zip, result.DateStart, result.DateEnd);

                        if (weatherDataList.Count != daysInReading)
                        {
                            throw new Exception($"WeatherDataList.Count != daysInReading; WeatherDataList.Count = {weatherDataList.Count}, " +
                                                $"daysInReading = {daysInReading}. Reading.StartDate = {result.DateStart} Reading.EndDate = {result.DateEnd}");
                        }

                        HeatingCoolingDegreeDays heatingCoolingDegreeDays = HeatingCoolingDegreeDaysValueOf(result, weatherDataList);

                        DoCalculation(result, heatingCoolingDegreeDays);
                    }
                    catch (Exception e)
                    {
                        Log.Error($"AccID/UtilID/UnitID: {result.AccID}/{result.UtilID}/{result.UnitID} >> " +
                                  $"Cannot calculate ExpUsage for RdngID: {result.RdngID} >> {e.Message}");
                        Log.Debug(e.StackTrace);
                    }
                }

                int expectedTotalWthExpUsageEntries = _weatherRepository.GetExpectedWthExpUsageRowCount(_MoID);
                int actualTotalWthExpUsageEntries   = _weatherRepository.GetActualWthExpUsageRowCount();

                Log.Information($"Finished PopulateWthExpUsage(). Expected inserts: {_expectedWthExpUsageInserts}, Actual: {_actualWthExpUsageInserts}");
                Log.Information($"Expected WthExpUsage total entries: {expectedTotalWthExpUsageEntries}, Actual: {actualTotalWthExpUsageEntries}.");
            }
            catch (Exception ex)
            {
                Log.Error($"Problem getting Readings >> {ex.Message} { ex.StackTrace}");
            }

            _expectedWthExpUsageInserts = 0;
            _actualWthExpUsageInserts   = 0;
        }