public override bool IsTheFirstEntryForUser(long userId)
        {
            GenericError error;
            List <DailyInfoSummaryData> entries = YearlyDailyInfoSummaryDataRepository.GetEntities(out error, d => d.UserId == userId);

            return(entries == null || entries.Count == 0);
        }
        public override DailyInfoSummaryData GetLattestRecord(long userId)
        {
            GenericError error;
            List <DailyInfoSummaryData> records = YearlyDailyInfoSummaryDataRepository.GetEntities(out error, d => d.UserId == userId);

            if (records.Any())
            {
                records.Sort((d1, d2) => DateTime.Compare(d1.Date, d2.Date));
                return(records.Last());
            }

            return(new DailyInfoSummaryData());
        }
 public override bool AddNewRecordToDataBase(DailyInfoSummaryData energyLevel)
 {
     try
     {
         GenericError error;
         YearlyDailyInfoSummaryDataRepository.InsertEntity(out error, energyLevel);
         return(error == null);
     }
     catch (Exception ex)
     {
         Logger.Controller.LogError(ex);
         Controller.GetUnknownError();
         throw;
     }
 }
Пример #4
0
        public override IList <DailyInfoSummaryData> GetViewDataForTimePeriod(int userId, DateTime now,
                                                                              int numberOfMonthsToDisplay)
        {
            DailyInfoSummaryData currentMonthEnergyInfo =
                YearlyDailyInfoSummaryDataRepository.GetAsQueryable <DailyInfoSummaryData>().Last();
            IEnumerable <DailyInfoSummaryData> lastMonthsEnergyLevelInfo = FinalYearlyDailyInfoSummaryDataRepository
                                                                           .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));
        }