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

            return(entries == null || entries.Count == 0);
        }
        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 override DailyInfoSummaryData GetLattestRecord(long userId)
        {
            GenericError error;
            List <DailyInfoSummaryData> records = MonthlyDailyInfoSummaryDataRepository.GetEntities(out error, d => d.UserId == userId);

            if (records.Any())
            {
                return(records.Last());
            }
            return(new DailyInfoSummaryData());
        }
 public override bool AddNewRecordToDataBase(DailyInfoSummaryData energyLevel)
 {
     try
     {
         GenericError error;
         MonthlyDailyInfoSummaryDataRepository.InsertEntity(out error, energyLevel);
         if (error != null)
         {
             return(false);
         }
         return(true);
     }
     catch (Exception ex)
     {
         Logger.Controller.LogError(ex);
         Controller.GetUnknownError();
         throw;
     }
 }