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