/// <summary> /// Generate the all page report summary to create a line chart /// </summary> /// <param name="pageReportType"></param> /// <param name="dateFrom"></param> /// <param name="dateTo"></param> /// <returns></returns> public static PageReportSummary GeneratePageReport(PageReportType pageReportType, DateTime dateFrom, DateTime dateTo, string selectedPage = "") { dateFrom = new DateTime(dateFrom.Year, dateFrom.Month, dateFrom.Day, 0, 0, 1); dateTo = new DateTime(dateTo.Year, dateTo.Month, dateTo.Day, 23, 59, 59); PageReportSummary PageReportSummary = new PageReportSummary(); //add 3 lists to represent the all categories if (string.IsNullOrWhiteSpace(selectedPage) || "all".Equals(selectedPage)) { PageReportSummary.PageReportSeriesList.Add(new PageReportSeries { name = "Page Views", data = new List <int>() }); PageReportSummary.PageReportSeriesList.Add(new PageReportSeries { name = "Website Visits", data = new List <int>() }); PageReportSummary.PageReportSeriesList.Add(new PageReportSeries { name = "Unique Website Visits", data = new List <int>() }); } else { PageReportSummary.PageReportSeriesList.Add(new PageReportSeries { name = "Page Views", data = new List <int>() }); } List <PageView> PageViewList = ReportDAO.LoadPageViews(dateFrom, dateTo, selectedPage); if (PageViewList != null && PageViewList.Count > 0) { while (dateFrom <= dateTo) { string DateTimeFormat = GetDateTimeCategoryToString(pageReportType); string Category = dateFrom.ToString(DateTimeFormat); PageReportSummary.MasterCategoryList.Add(Category); if (string.IsNullOrWhiteSpace(selectedPage) || "all".Equals(selectedPage)) { ProcessAllPageReportRow(PageReportSummary, PageViewList, DateTimeFormat, Category); } else { ProcessSpecificPageReportRow(PageReportSummary, PageViewList, DateTimeFormat, Category); } dateFrom = IncreaseDateTime(pageReportType, dateFrom); } ProcessBasicStatistics(PageReportSummary, PageViewList); ProcessBrowserSummary(PageReportSummary, PageViewList); ProcessOperatingSystemSummary(PageReportSummary, PageViewList); } return(PageReportSummary); }