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);
        }
Beispiel #2
0
        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);
        }