예제 #1
0
 public void CreateMonthlyAggregateRecord(int month, int year)
 {
     MonthlyAggregates.Add(new MonthlyAggregates
     {
         Month                = Dictionaries.MonthName[month],
         FirstRecordedDate    = DailyRainData[0].DateRecorded,
         LastRecordedDate     = DailyRainData[DailyRainData.Count - 1].DateRecorded,
         TotalRainfall        = Math.Round(DailyRainData.Sum(d => d.Rainfall), 2),
         AverageDailyRainfall = Math.Round(DailyRainData.Average(d => d.Rainfall), 2),
         DaysWithRainfall     = DailyRainData.Where(dr => dr.Rainfall > 0).Count(),
         DaysWithNoRainfall   = (!IsLeapYear(year) && month == February) ?
                                Dictionaries.MonthDays[month] - 1 - DailyRainData.Where(dr => dr.Rainfall > 0).Count() :
                                Dictionaries.MonthDays[month] - DailyRainData.Where(dr => dr.Rainfall > 0).Count()
     });
     DailyRainData.Clear();
 }
예제 #2
0
 public void CreateYearlyAggregateRecord(int year, int longestNumberOfDaysRaining)
 {
     YearlyAggregates.Add(new YearlyAggregates
     {
         Year = year,
         FirstRecordedDate          = MonthlyAggregates[0].FirstRecordedDate,
         LastRecordedDate           = MonthlyAggregates[MonthlyAggregates.Count - 1].LastRecordedDate,
         TotalRainfall              = Math.Round(MonthlyAggregates.Sum(m => m.TotalRainfall), 2),
         AverageDailyRainfall       = Math.Round(MonthlyAggregates.Sum(m => m.AverageDailyRainfall), 2),
         DaysWithNoRainfall         = MonthlyAggregates.Sum(m => m.DaysWithNoRainfall),
         DaysWithRainfall           = MonthlyAggregates.Sum(m => m.DaysWithRainfall),
         LongestNumberOfDaysRaining = longestNumberOfDaysRaining,
         MonthlyAggregates          = MonthlyAggregates.ToList(),
     });
     MonthlyAggregates.Clear();
 }