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; } }
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)); }