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>()); }
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); }
protected virtual bool DoGetInTimePeriodFilterComparision(DateTime now, int numberOfMonthsToDisplay, TModel d) { return(PeriodSelectionStrategy.TimePeriodFilterComparision(now, numberOfMonthsToDisplay, d)); }