public void WhenActivitiesExistShouldSetDayActivityCount() { MemoryDataContext.Clear(); InsertDefaultAthlete(); Assert.AreEqual(0, MemoryDataContext.Queryable<Run>().Count()); var e = new RunDataAccess(); var monthQuery = new MonthQuery { Athlete = _athlete, Month = 1, WeekStartsOnMonday = true, Year = 2009 }; monthQuery.CalculateDateRange(); InsertPersistentRun(monthQuery.Start); InsertPersistentRun(monthQuery.End); InsertPersistentRun(monthQuery.End); monthQuery = e.GetMonthQuery(monthQuery); Assert.AreEqual(1, monthQuery.DayActivities.First().ActivityCount); Assert.AreEqual(2, monthQuery.DayActivities.Last().ActivityCount); }
public MonthQuery GetMonthQuery(MonthQuery query) { query.CalculateDateRange(); query.BuildEmptyDayActivityList(); //must convert ToList() groupby syntaks is not supported var grouped = GetRuns(query).ToList().GroupBy(x => x.Start.Date, new DateEqualityComparer()); var activities = grouped.ToList().ConvertAll(x => new DayActivity { ActivityCount = x.Count(), Day = x.Key }); query.BuildDayActivities(activities); return query; }
public void ShouldSetStartAndEndDate() { var monthQuery = new MonthQuery { Athlete = _athlete, Month = 11, WeekStartsOnMonday = true, Year = 2009 }; monthQuery.CalculateDateRange(); Assert.AreEqual(new DateTime(2009,10, 26), monthQuery.Start); Assert.AreEqual(new DateTime(2009, 12, 6), monthQuery.End); }
public void ShouldReturn42EmptyDayActivities() { MemoryDataContext.Clear(); InsertDefaultAthlete(); Assert.AreEqual(0, MemoryDataContext.Queryable<Run>().Count()); var e = new RunDataAccess(); var monthQuery = new MonthQuery { Athlete = _athlete, Month = 11, WeekStartsOnMonday = true, Year = 2009 }; monthQuery = e.GetMonthQuery(monthQuery); foreach (var dayActivity in monthQuery.DayActivities) { Assert.AreEqual(0, dayActivity.ActivityCount); } Assert.AreEqual(42, monthQuery.DayActivities.Count); }
public IQueryable<Run> GetRuns(MonthQuery monthQuery) { var runs = GetUnTrashedRuns(monthQuery.Start, monthQuery.End).Where(x => x.Athlete == monthQuery.Athlete); return runs; }