예제 #1
0
        public static FlotChart GetPageVisitChart(IStatsRepository repository)
        {
            var visits = repository.FetchUniqueVisits(null, null).ToList();

            var chart = new FlotChart();

            var unique = chart.AddSeries("Unique Visitors", new FlotChartLine());
            var clicks = chart.AddSeries("Page Clicks", new FlotChartDashed(true, 2));

            foreach (var date in visits.Select(v => v.Date).Distinct())
            {
                chart.AddData(unique, date.Value.ToLongDateString(), visits.Where(v => v.Date == date).Count());
                chart.AddData(clicks, date.Value.ToLongDateString(), visits.Where(v => v.Date == date).Sum(v => v.Count.HasValue ? v.Count.Value : 0));
            }

            return(chart);
        }
예제 #2
0
        public static List <dynamic> GetPageVisitAggregation(IStatsRepository repository)
        {
            var clicks = new List <dynamic>();

            var visits = repository.FetchUniqueVisits(null, null).ToList();

            foreach (var date in visits.Select(v => v.Date).Distinct())
            {
                clicks.Add(new
                {
                    date   = date.Value,
                    unique = visits.Where(v => v.Date == date).Count(),
                    clicks = visits.Where(v => v.Date == date).Sum(v => v.Count.HasValue ? v.Count.Value : 0)
                });
            }

            return(clicks);
        }