Exemple #1
0
        /// <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);
        }