public bool InsertDailyEnergyLevel(DailyEnergyLevel energyLevel) { try { DateTime now = Controller.GetServerDateTime(); bool todayEnergyLevelExist = DailyEnergyLevelRepository.GetAsQueryable <DailyEnergyLevel>().ToList() .FirstOrDefault(e => (e.UserId == energyLevel.UserId) && (now.Day == e.Date.Day) && (now.Month == e.Date.Month) && (now.Year == e.Date.Year)) != null; if (todayEnergyLevelExist) { return(false); } GenericError error; DailyEnergyLevelRepository.InsertEntity(out error, energyLevel); if (error == null) { MontlyInfoHandlingTemplate.UpdateEntityRecords(energyLevel); YearlyInfoHandlingTemplate.UpdateEntityRecords(energyLevel); EventsService.UpdateUserDates(energyLevel.UserId, null, Controller.GetServerDateTime()); } return(error == null); } catch (Exception ex) { Logger.Controller.LogError(ex); ErrorClasses.Controller.GetUnknownError(); return(false); } }
public void YearlyEnergyLevelsTest_FirstYearContainingOnlyOneDay() { var initialTime = new DateTime(2013, 4, 23); TestHelper.DropEnergyLevels(); var energyLevelInfoService = ObjectFactory.GetInstance <IEnergyLevelInfoService>(); long userId = GetNewUserId(); var dailyEnergyLevels = new List <DailyEnergyLevel>(); int daysBackWard = DateTime.DaysInMonth(2013, 1) + DateTime.DaysInMonth(2013, 2) + DateTime.DaysInMonth(2013, 3) + 23; for (int i = -daysBackWard; i <= 0; i = i + 1) { var energyLevel = new DailyEnergyLevel { UserId = userId, Date = initialTime.AddDays(i), EnergyLevel = (byte)(-i % 3), }; energyLevelInfoService.InsertDailyEnergyLevel(energyLevel); dailyEnergyLevels.Add(energyLevel); } IList <ServiceModel.EnergyLevel.EnergyLevelInfo> dayLevels = energyLevelInfoService.GetEnergyLevelsForTimePeriod((int)userId, initialTime, Constants.YEAR_PERIOD); Assert.IsTrue(dayLevels.Count(e => e.Value > 0) == 2); }
public void MonthlyEnergyLevelsTest_FirstMonthContainingOnlyOneDay() { var initialTime = new DateTime(2013, 4, 23); TestHelper.DropEnergyLevels(); var energyLevelInfoService = ObjectFactory.GetInstance <IEnergyLevelInfoService>(); long userId = GetNewUserId(); var dailyEnergyLevels = new List <DailyEnergyLevel>(); const int daysBackWard = 23; for (int i = -daysBackWard; i <= 0; i = i + 1) { var energyLevel = new DailyEnergyLevel { UserId = userId, Date = initialTime.AddDays(i), EnergyLevel = 1, }; energyLevelInfoService.InsertDailyEnergyLevel(energyLevel); dailyEnergyLevels.Add(energyLevel); } IList <ServiceModel.EnergyLevel.EnergyLevelInfo> dayLevels = energyLevelInfoService.GetEnergyLevelsForTimePeriod((int)userId, initialTime, 2); Assert.IsTrue(dayLevels.Count(e => e.Value == 1) == 2); }
public void GetLastDaysEnergyLevelTest_OnlyEvenDaysWereFilled() { TestHelper.DropEnergyLevels(); var energyLevelInfoService = ObjectFactory.GetInstance <IEnergyLevelInfoService>(); long userId = GetNewUserId(); var dailyEnergyLevels = new List <DailyEnergyLevel>(); for (int i = -50; i <= 0; i = i + 2) { var energyLevel = new DailyEnergyLevel { UserId = userId, Date = DateTime.Now.AddDays(i), EnergyLevel = 1, }; energyLevelInfoService.InsertDailyEnergyLevel(energyLevel); dailyEnergyLevels.Add(energyLevel); } IList <ServiceModel.EnergyLevel.EnergyLevelInfo> dayLevels = energyLevelInfoService.GetEnergyLevelsForTimePeriod((int)userId, DateTime.Now, 0); Assert.IsTrue(dayLevels.Count(e => e.Value == 1) == 4); }
public void YearlyEnergyLevelsTest_ShouldIncludeTheCorrectDataInTimeSpans_ExactlyOneYear() { var initialTime = new DateTime(2013, 4, 23); TestHelper.DropEnergyLevels(); var energyLevelInfoService = ObjectFactory.GetInstance <IEnergyLevelInfoService>(); long userId = GetNewUserId(); var dailyEnergyLevels = new List <DailyEnergyLevel>(); int daysBackWard = DateTime.DaysInMonth(2013, 1) + DateTime.DaysInMonth(2013, 2) + DateTime.DaysInMonth(2013, 3) + 22; for (int i = -daysBackWard; i <= 0; i = i + 1) { var energyLevel = new DailyEnergyLevel { UserId = userId, Date = initialTime.AddDays(i), EnergyLevel = (byte)(-i % 3), }; energyLevelInfoService.InsertDailyEnergyLevel(energyLevel); dailyEnergyLevels.Add(energyLevel); } IList <ServiceModel.EnergyLevel.EnergyLevelInfo> dayLevels = energyLevelInfoService.GetEnergyLevelsForTimePeriod((int)userId, initialTime, Constants.YEAR_PERIOD); Assert.IsTrue(dayLevels.Count(e => e.Value > 0) == 1); Assert.IsTrue(Math.Abs(dayLevels[0].Value - dailyEnergyLevels.Average(c => c.EnergyLevel)) < 0.1); }
public override ServiceModel.EnergyLevel.EnergyLevelInfo InitializeNewServiceType(DailyEnergyLevel objectInTimeSpan, TimeSpan span) { return(new ServiceModel.EnergyLevel.EnergyLevelInfo() { Date = objectInTimeSpan.Date, Value = objectInTimeSpan.EnergyLevel, DateString = span.GetSpanDate() }); }
public override ServiceModel.EnergyLevel.EnergyLevelInfo InitializeNewServiceType(DailyEnergyLevel answers, TimeSpan span) { return(new ServiceModel.EnergyLevel.EnergyLevelInfo() { Value = answers.EnergyLevel, DateString = span.GetSpanDate(), Date = answers.Date }); }