public override IList <DailyInfoSummaryData> GetViewDataForTimePeriod(int userId, DateTime now,
                                                                              int numberOfMonthsToDisplay)
        {
            IQueryable <DailyInfoSummaryData> infos =
                MonthlyDailyInfoSummaryDataRepository.GetAsQueryable <DailyInfoSummaryData>();

            if (infos.Any())
            {
                DailyInfoSummaryData currentMonthEnergyInfo = infos.Last();

                IEnumerable <DailyInfoSummaryData> lastMonthsEnergyLevelInfo = FinalMonthlyDailyInfoSummaryDataRepository
                                                                               .GetAsQueryable <DailyInfoSummaryData>().ToList()
                                                                               .Where(
                    d => d.UserId == userId && DoGetInTimePeriodFilterComparision(now, numberOfMonthsToDisplay, d));

                //aggregate lists
                var allMontlyEnergyInfo = new List <DailyInfoSummaryData> {
                    currentMonthEnergyInfo
                };
                allMontlyEnergyInfo.AddRange(lastMonthsEnergyLevelInfo);
                InitializePeriodStrategy(userId);
                IList <TimeSpan>            monthlyTimeSpans        = PeriodSelectionStrategy.GetTimeSpans(now, numberOfMonthsToDisplay);
                List <DailyInfoSummaryData> energyLevelInfoViewData = FillRecordsOnEmptyTimeSpans(allMontlyEnergyInfo,
                                                                                                  monthlyTimeSpans);

                return(DailyInfoService.TranctuateDigits(energyLevelInfoViewData));
            }
            return(new List <DailyInfoSummaryData>());
        }
Ejemplo n.º 2
0
        public virtual IList <TService> GetViewDataForTimePeriod(int userId, DateTime now, int numberOfMonthsToDisplay)
        {
            var allMontlyEnergyInfo = DoGetFinalDataToDisplay(userId, now, numberOfMonthsToDisplay);

            InitializePeriodStrategy(userId);
            var monthlyTimeSpans        = PeriodSelectionStrategy.GetTimeSpans(now, numberOfMonthsToDisplay);
            var energyLevelInfoViewData = FillRecordsOnEmptyTimeSpans(allMontlyEnergyInfo, monthlyTimeSpans);

            return(energyLevelInfoViewData);
        }
Ejemplo n.º 3
0
 protected virtual bool DoGetInTimePeriodFilterComparision(DateTime now, int numberOfMonthsToDisplay, TModel d)
 {
     return(PeriodSelectionStrategy.TimePeriodFilterComparision(now, numberOfMonthsToDisplay, d));
 }