Esempio n. 1
0
    protected void GetReports()
    {
        IDimensions _dimensions = dataManager.GetDimensions(_provider);//todo: test with different provider
        AnalyticsCriteria criteria = new AnalyticsCriteria();
        criteria.DimensionFilters.Condition = LogicalOperation.Or;
        foreach (string pagePath in UrlFilter.PagePaths)
        {
            Dimension d = null;
            switch (_providerType)
            {
                case "Ektron.Cms.Analytics.Providers.WebTrendsProvider":
                    d = _dimensions.pages;
                    break;
                case "Ektron.Cms.Analytics.Providers.GoogleAnalyticsProvider":
                    d = _dimensions.pagePath;
                    break;
                default:
                    throw new NotImplementedException();

            }
            if (d != null)
            {
                criteria.DimensionFilters.AddFilter(d, DimensionFilterOperator.EqualTo, pagePath);
            }
            else
            {
                throw new NotImplementedException();
            }
        }
        try
        {
            if (_provider != "" && dataManager.HasProvider(_provider))
            {
                reports1 = this.GetReportDataList(_startDate1, _endDate1, criteria);
                reports2 = this.GetReportDataList(_startDate2, _endDate2, criteria);
            }
            else
            {
                reports1 = new List<AnalyticsReportData>();
                reports2 = new List<AnalyticsReportData>();
            }
            if (reports1.Count == 0 && reports2.Count == 0)
            {
                this.ltr_error.Text = GetMessage("err hostname no stats");
                this.errGAMsg.Visible = true;
            }
        }
        catch (Exception ex)
        {
            if (ex.Message.Contains("(401)"))
            {
                errDataManager = GetMessage("err analytics data provider");
            } else
            {
                errDataManager = ex.Message;
            }

            this.ltr_error.Text = errDataManager;
            this.errGAMsg.Visible = true;
        }
    }
Esempio n. 2
0
 private List<AnalyticsReportData> GetReportDataList(DateTime startDate, DateTime endDate, AnalyticsCriteria criteria)
 {
     AnalyticsReportData oneReport = null;
     List<AnalyticsReportData> reports = new List<AnalyticsReportData>();
     if (this.CookieSegments.Count > 0)
     {
         foreach (string segIdPair in this.CookieSegments)
         {
             string segVal = segIdPair.Substring(0, segIdPair.IndexOf("|"));
             string sSegProp = segIdPair.Replace(segVal + "|", "");
             SegmentProperty segProp = (SegmentProperty)Convert.ToInt32(sSegProp);
             criteria.SegmentFilter = new SegmentFilter(segProp, SegmentFilterOperator.EqualTo, segVal);
             oneReport = dataManager.GetContentDetail(_provider, startDate, endDate, criteria);
             if (oneReport != null)
             {
                 reports.Add(oneReport);
             }
         }
     }
     else
     {
         // no cookieSegments
         oneReport = dataManager.GetContentDetail(_provider, startDate, endDate, criteria);
         if (oneReport != null)
         {
             reports.Add(oneReport);
         }
     }
     return reports;
 }
Esempio n. 3
0
    private void UpdateCriteriaOrderBy(AnalyticsCriteria criteria, AnalyticsSortableField defaultField, bool allowSorting)
    {
        if (!allowSorting) return;
        _sortField = defaultField;

        string sortExpression = ViewState["SortExpression"] as string;

        if (!String.IsNullOrEmpty(sortExpression))
        {
            if (Enum.IsDefined(typeof(AnalyticsSortableField), sortExpression))
            {
                AnalyticsSortableField newSortField = (AnalyticsSortableField)Enum.Parse(typeof(AnalyticsSortableField), sortExpression, true);
                if (!((_reportType == ReportType.TopContent || _reportType == ReportType.ContentByTitle || _reportType == ReportType.TopLanding || _reportType == ReportType.TopExit) && newSortField == AnalyticsSortableField.Visits))
                    _sortField = newSortField; //TODO:
            }
        }

        _sortDirection = (_sortField == AnalyticsSortableField.Name ? EkEnumeration.OrderByDirection.Ascending : EkEnumeration.OrderByDirection.Descending);

        if (ViewState["SortDirection"] != null)
        {
            if (SortDirection.Ascending == (SortDirection)ViewState["SortDirection"])
            {
                _sortDirection = EkEnumeration.OrderByDirection.Ascending;
            }
            else
            {
                _sortDirection = EkEnumeration.OrderByDirection.Descending;
            }
        }

        ViewState["SortExpression"] = _sortField.ToString();
        ViewState["SortDirection"] = (_sortDirection == EkEnumeration.OrderByDirection.Ascending ? SortDirection.Ascending : SortDirection.Descending);

        criteria.OrderByField = _sortField;
        criteria.OrderByDirection = _sortDirection;
    }
Esempio n. 4
0
 private List<AnalyticsReportData> GetReportDataList(string provider, ReportType reportType, DateTime startDate, DateTime endDate, AnalyticsCriteria criteria)
 {
     List<AnalyticsReportData> mergedReport = new List<AnalyticsReportData>();
     AnalyticsReportData oneReport = null;
     if (this.ProviderSegments != null && this.ProviderSegments.Count > 1)
     {
         foreach (string segIdPair in this.ProviderSegments)
         {
             string segVal = segIdPair.Substring(0, segIdPair.IndexOf("|"));
             string sSegProp = segIdPair.Replace(segVal + "|", "");
             SegmentProperty segProp = (SegmentProperty)Convert.ToInt32(sSegProp);
             criteria.SegmentFilter = new SegmentFilter(segProp, SegmentFilterOperator.EqualTo, segVal);
             oneReport = _dataManager.GetReportRanked(provider, reportType, startDate, endDate, criteria);
             if (oneReport != null)
             {
                 mergedReport.Add(oneReport);
             }
         }
     }
     else
     {
         oneReport = _dataManager.GetReportRanked(provider, reportType, startDate, endDate, criteria);
         if (oneReport != null)
         {
             mergedReport.Add(oneReport);
         }
     }
     return mergedReport;
 }
Esempio n. 5
0
    private List<AnalyticsReportData> GetAnalyticsReport(string provider)
    {
        bool allowSorting = false;
        string cssTweak = string.Empty;
        if (FromWidget)
        {
            cssTweak = "<style type='text/css'> .EktronPersonalization .analyticsReport .SiteSelectorContainer {display: none;} </style>";
        }
        else
        {
            cssTweak = "<style type='text/css'> .SiteSelectorContainer {display: none;} </style>";
        }
        if (!String.IsNullOrEmpty(provider) && _dataManager.HasProvider(provider))
        {
            allowSorting = _dataManager.AllowSorting(provider);
            _dimensions = _dataManager.GetDimensions(provider);
            _metrics = _dataManager.GetMetrics(provider);
            string providerType = _dataManager.GetProviderType(provider);
            if (providerType != "Ektron.Cms.Analytics.Providers.GoogleAnalyticsProvider")
            {
                if (FromWidget)
                {
                    cssTweak = "<style type='text/css'> .EktronPersonalization .analyticsReport input.SegmentPopupBtn {display: none;} </style>";
                }
                else
                {
                    cssTweak = "<style type='text/css'> input.SegmentPopupBtn {display: none;} </style>";
                }
            }
        }
        gvDataTable.AllowSorting = allowSorting;

        List<AnalyticsReportData> reports = null;
        AnalyticsReportData report = null;
        DateTime startDate = _startDate;
        DateTime endDate = _endDate;
        string reportSubtitle = string.Empty;
        string reportSummary = string.Empty;
        string reportSummaryShort = string.Empty;
        string reportSegSummary = string.Empty;
        bool bGeneric = false;

        if (ErrorPanel.Visible) {
            this.htmReportSummary.InnerText = string.Empty;
            return null;
        }

        AnalyticsCriteria criteria = new AnalyticsCriteria();
        // setting criteria.PagingInfo.RecordsPerPage will disable the paging in the grid.
        //criteria.PagingInfo.RecordsPerPage = gvDataTable.PageSize;
        if (DisplayView.Detail == this.View)
        {
            criteria.AggregationPeriod = AggregationTimePeriod.ByDay;
        }

        try
        {
            _defaultView = DisplayView.Percentage;
            _bDrillDownReport = false;
            _bDrillDownDetail = true;
            switch (_reportType)
            {
                #region Google Analytics Reports
                /* case ReportType.MapOverlay: */
                case ReportType.Locations:
                    ReportTitle = _reportTypeName = GetMessage("sam locations");
                    if (IsDimensionSupported(_dimensions.country))
                    {
                        reportSummary = GetMessage("lbl visit came from countries");
                        reportSegSummary = GetMessage("lbl visit came from countries in segment");
                        _columnName = GetMessage("lbl country territory");
                        _defaultView = DisplayView.Table;
                        _bDrillDownReport = true;
                        _bDrillDownDetail = false;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.country, DimensionFilterOperator.EqualTo, _forValue);
                            criteria.Dimensions.Insert(0, _dimensions.region);
                            reportSummary = GetMessage("lbl visit came from regions");
                            reportSegSummary = GetMessage("lbl visit came from regions in segment");
                            ReportTitle = _columnName;
                            if (_forValue != "(not set)") // TODO: "(not set)" is Google-specific
                            {
                                reportSubtitle = _forValue;
                            }
                            _columnName = GetMessage("lbl region");
                            _strDrillDownArg = "and";
                        }
                        if (!String.IsNullOrEmpty(_andValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.region, DimensionFilterOperator.EqualTo, _andValue);
                            criteria.Dimensions.Insert(0, _dimensions.city);
                            reportSummary = GetMessage("lbl visit came from cities");
                            reportSegSummary = GetMessage("lbl visit came from cities in segment");
                            ReportTitle = _columnName;
                            if (_andValue != "(not set)") // TODO: "(not set)" is Google-specific
                            {
                                if (reportSubtitle.Length > 0)
                                {
                                    reportSubtitle = _andValue + ", " + reportSubtitle;
                                }
                                else
                                {
                                    reportSubtitle = _andValue;
                                }
                            }
                            _columnName = GetMessage("lbl address city");
                            _bDrillDownReport = false;
                            _bDrillDownDetail = true;
                            _strDrillDownArg = "also";
                        }
                        if (!String.IsNullOrEmpty(_alsoValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.city, DimensionFilterOperator.EqualTo, _alsoValue);
                            ReportTitle = _columnName;
                            if (_alsoValue != "(not set)") // TODO: "(not set)" is Google-specific
                            {
                                if (reportSubtitle.Length > 0)
                                {
                                    reportSubtitle = _alsoValue + ", " + reportSubtitle;
                                }
                                else
                                {
                                    reportSubtitle = _alsoValue;
                                }
                            }
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.NewVsReturning:
                    ReportTitle = _reportTypeName = GetMessage("sam new vs returning");
                    if (IsDimensionSupported(_dimensions.visitorType) && IsMetricSupported(_metrics.visitors))
                    {
                        reportSummary = GetMessage("lbl visit from visitor types");
                        reportSegSummary = GetMessage("lbl visit from visitor types in segment");
                        _columnName = GetMessage("lbl visitor type");
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.visitorType, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Languages:
                    ReportTitle = _reportTypeName = GetMessage("sam languages");
                    if (IsDimensionSupported(_dimensions.language))
                    {
                        reportSummary = GetMessage("lbl visit used languages");
                        reportSegSummary = GetMessage("lbl visit used languages in segment");
                        _columnName = GetMessage("generic language");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.language, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;

                case ReportType.Browsers:
                    ReportTitle = _reportTypeName = GetMessage("sam browsers");
                    if (IsDimensionSupported(_dimensions.browser))
                    {
                        reportSummary = GetMessage("lbl visit used browsers");
                        reportSegSummary = GetMessage("lbl visit used browsers in segment");
                        _columnName = GetMessage("lbl browser");
                        _bDrillDownReport = true;
                        _bDrillDownDetail = false;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.browser, DimensionFilterOperator.EqualTo, _forValue);
                            criteria.Dimensions.Insert(0, _dimensions.browserVersion);
                            reportSummary = GetMessage("lbl visit used browser versions");
                            reportSegSummary = GetMessage("lbl visit used browser versions in segment");
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue + " ";
                            _columnName = GetMessage("lbl browser version");
                            _bDrillDownReport = false;
                            _bDrillDownDetail = true;
                            _strDrillDownArg = "and";
                        }
                        if (!String.IsNullOrEmpty(_andValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.browserVersion, DimensionFilterOperator.EqualTo, _andValue);
                            ReportTitle = _columnName;
                            reportSubtitle += _andValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.OS:
                    ReportTitle = _reportTypeName = GetMessage("sam operating systems");
                    if (IsDimensionSupported(_dimensions.operatingSystem))
                    {
                        reportSummary = GetMessage("lbl visit used operating systems");
                        reportSegSummary = GetMessage("lbl visit used operating systems in segment");
                        _columnName = GetMessage("lbl operating system");
                        _bDrillDownReport = true;
                        _bDrillDownDetail = false;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.operatingSystem, DimensionFilterOperator.EqualTo, _forValue);
                            criteria.Dimensions.Insert(0, _dimensions.operatingSystemVersion);
                            reportSummary = GetMessage("lbl visit used os versions");
                            reportSegSummary = GetMessage("lbl visit used os versions in segment");
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue + " ";
                            _columnName = GetMessage("lbl os version");
                            _bDrillDownReport = false;
                            _bDrillDownDetail = true;
                            _strDrillDownArg = "and";
                        }
                        if (!String.IsNullOrEmpty(_andValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.operatingSystemVersion, DimensionFilterOperator.EqualTo, _andValue);
                            ReportTitle = _columnName;
                            reportSubtitle += _andValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Platforms:
                    ReportTitle = _reportTypeName = GetMessage("sam browsers and os");
                    if (IsDimensionSupported(_dimensions.browser) && IsDimensionSupported(_dimensions.operatingSystem))
                    {
                        reportSummary = GetMessage("lbl visit used browser and os combinations");
                        reportSegSummary = GetMessage("lbl visit used browser and os combinations in segment");
                        _columnName = GetMessage("lbl browser and os");
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            string[] values = _forValue.Split(new char[] { '/' }, 2);
                            criteria.DimensionFilters.AddFilter(_dimensions.browser, DimensionFilterOperator.EqualTo, values[0].Trim());
                            criteria.DimensionFilters.AddFilter(_dimensions.operatingSystem, DimensionFilterOperator.EqualTo, values[1].Trim());
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Colors:
                    ReportTitle = _reportTypeName = GetMessage("sam screen colors");
                    if (IsDimensionSupported(_dimensions.screenColors))
                    {
                        reportSummary = GetMessage("lbl visit used screen colors");
                        reportSegSummary = GetMessage("lbl visit used screen colors in segment");
                        _columnName = GetMessage("sam screen colors");
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.screenColors, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Resolutions:
                    ReportTitle = _reportTypeName = GetMessage("sam screen resolutions");
                    if (IsDimensionSupported(_dimensions.screenResolution))
                    {
                        reportSummary = GetMessage("lbl visit used screen resolutions");
                        reportSegSummary = GetMessage("lbl visit used screen resolutions in segment");
                        _columnName = GetMessage("lbl screen resolution");
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.screenResolution, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Flash:
                    ReportTitle = _reportTypeName = GetMessage("sam flash versions");
                    if (IsDimensionSupported(_dimensions.flashVersion))
                    {
                        reportSummary = GetMessage("lbl visit used flash versions");
                        reportSegSummary = GetMessage("lbl visit used flash versions in segment");
                        _columnName = GetMessage("lbl flash version");
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.flashVersion, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Java:
                    ReportTitle = _reportTypeName = GetMessage("sam java support");
                    if (IsDimensionSupported(_dimensions.javaEnabled))
                    {
                        reportSummary = GetMessage("lbl visit used java support");
                        reportSegSummary = GetMessage("lbl visit used java support in segment");
                        _columnName = ReportTitle;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.javaEnabled, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;

                case ReportType.NetworkLocations:
                    ReportTitle = _reportTypeName = GetMessage("sam network location");
                    if (IsDimensionSupported(_dimensions.networkLocation))
                    {
                        reportSummary = GetMessage("lbl visit came from network locations");
                        reportSegSummary = GetMessage("lbl visit came from network locations in segment");
                        _columnName = ReportTitle;
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.networkLocation, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Hostnames:
                    ReportTitle = _reportTypeName = GetMessage("sam hostnames");
                    if (IsDimensionSupported(_dimensions.hostname))
                    {
                        reportSummary = GetMessage("lbl visit came from hostnames");
                        reportSegSummary = GetMessage("lbl visit came from hostnames in segment");
                        _columnName = GetMessage("lbl hostname");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.hostname, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.ConnectionSpeeds:
                    ReportTitle = _reportTypeName = GetMessage("sam connection speeds");
                    if (IsDimensionSupported(_dimensions.connectionSpeed))
                    {
                        reportSummary = GetMessage("lbl visit used connection speeds");
                        reportSegSummary = GetMessage("lbl visit used connection speeds in segment");
                        _columnName = GetMessage("lbl connection speed");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.connectionSpeed, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;

                case ReportType.UserDefined:
                    ReportTitle = _reportTypeName = GetMessage("sam user defined");
                    if (IsDimensionSupported(_dimensions.userDefinedValue))
                    {
                        reportSummary = GetMessage("lbl visit used user defined values");
                        reportSegSummary = GetMessage("lbl visit used user defined values in segment");
                        _columnName = GetMessage("lbl user defined value");
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.userDefinedValue, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;

                case ReportType.Direct:
                    ReportTitle = _reportTypeName = GetMessage("sam direct traffic");
                    if (IsDimensionSupported(_dimensions.source))
                    {
                        reportSummary = GetMessage("lbl visit came directly to this site");
                        reportSegSummary = GetMessage("lbl visit came directly to this site in segment");
                        _columnName = GetMessage("lbl source");
                        _defaultView = DisplayView.Detail;
                        if (DisplayView.Detail == this.View)
                        {
                            criteria.AggregationPeriod = AggregationTimePeriod.ByDay;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Referring:
                    ReportTitle = _reportTypeName = GetMessage("sam referring sites");
                    if (IsDimensionSupported(_dimensions.source))
                    {
                        reportSummary = GetMessage("lbl referring sites sent visits via sources");
                        reportSegSummary = GetMessage("lbl referring sites sent visits via sources in segment");
                        _columnName = GetMessage("lbl referring site");
                        _defaultView = DisplayView.Table;
                        _bDrillDownReport = true;
                        _bDrillDownDetail = false;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.source, DimensionFilterOperator.EqualTo, _forValue);
                            criteria.Dimensions.Insert(0, _dimensions.referralPath);
                            reportSummary = GetMessage("lbl referring site sent visits via paths");
                            reportSegSummary = GetMessage("lbl referring site sent visits via paths");
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue + " ";
                            _columnName = GetMessage("lbl referring link");
                            _bDrillDownReport = false;
                            _bDrillDownDetail = true;
                            _strDrillDownArg = "and";
                        }
                        if (!String.IsNullOrEmpty(_andValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.referralPath, DimensionFilterOperator.EqualTo, _andValue);
                            ReportTitle = _columnName;
                            reportSubtitle += ":\xA0 " + _andValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.SearchEngines:
                    ReportTitle = _reportTypeName = GetMessage("sam search engines");
                    if (IsDimensionSupported(_dimensions.source))
                    {
                        reportSummary = GetMessage("lbl search sent total visits via sources");
                        reportSegSummary = GetMessage("lbl search sent total visits via sources in segment");
                        _columnName = GetMessage("lbl search engine");
                        _defaultView = DisplayView.Table;
                        _bDrillDownReport = true;
                        _bDrillDownDetail = false;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.source, DimensionFilterOperator.EqualTo, _forValue);
                            criteria.Dimensions.Insert(0, _dimensions.keyword);
                            reportSummary = GetMessage("lbl search sent total visits via keywords");
                            reportSegSummary = GetMessage("lbl search sent total visits via keywords in segment");
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue + " ";
                            _columnName = GetMessage("lbl keyword");
                            _bDrillDownReport = false;
                            _bDrillDownDetail = true;
                            _strDrillDownArg = "and";
                        }
                        if (!String.IsNullOrEmpty(_andValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.keyword, DimensionFilterOperator.EqualTo, _andValue);
                            ReportTitle = _columnName;
                            reportSubtitle += ":\xA0 \"" + _andValue + "\"";
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.TrafficSources:
                    ReportTitle = _reportTypeName = GetMessage("sam all traffic sources");
                    if (IsDimensionSupported(_dimensions.source) && IsDimensionSupported(_dimensions.medium))
                    {
                        reportSummary = GetMessage("lbl all traffic sources sent visits via sources and mediums");
                        reportSegSummary = GetMessage("lbl all traffic sources sent visits via sources and mediums in segment");
                        _columnName = GetMessage("lbl source");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            string[] values = _forValue.Split(new char[] { '/' }, 2);
                            criteria.DimensionFilters.AddFilter(_dimensions.source, DimensionFilterOperator.EqualTo, values[0].Trim());
                                criteria.DimensionFilters.AddFilter(_dimensions.medium, DimensionFilterOperator.EqualTo, values[1].Trim());
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Keywords:
                    ReportTitle = _reportTypeName = GetMessage("sam keywords");
                    if (IsDimensionSupported(_dimensions.keyword))
                    {
                        reportSummary = GetMessage("lbl search sent total visits via keywords");
                        reportSegSummary = GetMessage("lbl search sent total visits via keywords in segment");
                        _columnName = GetMessage("lbl keyword");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.keyword, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.Campaigns:
                    ReportTitle = _reportTypeName = GetMessage("sam campaigns");
                    if (IsDimensionSupported(_dimensions.campaign))
                    {
                        reportSummary = GetMessage("lbl campaign traffic sent visits via campaigns");
                        reportSegSummary = GetMessage("lbl campaign traffic sent visits via campaigns in segment");
                        _columnName = GetMessage("lbl campaign");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.campaign, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;
                case ReportType.AdVersions:
                    ReportTitle = _reportTypeName = GetMessage("sam ad versions");
                    if (IsDimensionSupported(_dimensions.adContent))
                    {
                        reportSummary = GetMessage("lbl ads sent visits via ad contents");
                        reportSegSummary = GetMessage("lbl ads sent visits via ad contents in segment");
                        _columnName = GetMessage("lbl ad content");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.adContent, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Visits, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                    }
                    break;

                case ReportType.TopContent:
                    ReportTitle = _reportTypeName = GetMessage("sam top content");
                    if (IsDimensionSupported(_dimensions.pagePath))
                    {
                        reportSummary = GetMessage("lbl pages were viewed a total of times");
                        reportSegSummary = GetMessage("lbl pages were viewed a total of times in segment");
                        reportSummaryShort = GetMessage("lbl pages were viewed");
                        _columnName = GetMessage("page lbl");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.pagePath, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.PageViews, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.PageData;
                    }
                    break;
                case ReportType.ContentByTitle:
                    ReportTitle = _reportTypeName = GetMessage("sam content by title");
                    if (IsDimensionSupported(_dimensions.pageTitle))
                    {
                        reportSummary = GetMessage("lbl page titles were viewed a total times");
                        reportSegSummary = GetMessage("lbl page titles were viewed a total times in segment");
                        reportSummaryShort = GetMessage("lbl page titles were viewed");
                        _columnName = GetMessage("lbl page title");
                        _defaultView = DisplayView.Table;
                        _bDrillDownReport = true;
                        _bDrillDownDetail = false;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.pageTitle, DimensionFilterOperator.EqualTo, _forValue);
                            criteria.Dimensions.Insert(0, _dimensions.pagePath);
                            reportSummary = GetMessage("lbl page visited times via pages");
                            reportSegSummary = GetMessage("lbl page visited times via pages in segment");
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue + " ";
                            _columnName = GetMessage("page lbl");
                            _bDrillDownReport = false;
                            _bDrillDownDetail = true;
                            _strDrillDownArg = "and";
                        }
                        if (!String.IsNullOrEmpty(_andValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.pagePath, DimensionFilterOperator.EqualTo, _andValue);
                            ReportTitle = _columnName;
                            reportSubtitle += ":\xA0 \"" + _andValue + "\"";
                            _defaultView = DisplayView.Detail;
                        }
                        UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.PageViews, allowSorting);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.PageData;
                    }
                    break;
                case ReportType.TopLanding:
                    ReportTitle = _reportTypeName = GetMessage("sam top landing pages");
                    if (IsDimensionSupported(_dimensions.landingPagePath) && IsMetricSupported(_metrics.bounces) && IsMetricSupported(_metrics.entrances))
                    {
                        reportSummary = GetMessage("lbl visit entered the site through pages");
                        reportSegSummary = GetMessage("lbl visit entered the site through pages in segment");
                        _columnName = GetMessage("page lbl");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.pagePath, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;

                            UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.PageViews, allowSorting);
                            reports = this.GetReportDataList(provider, ReportType.TopContent, startDate, endDate, criteria);
                            _reportDisplayData = ReportDisplayData.PageData;
                        }
                        else
                        {
                            UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Entrances, allowSorting);
                            reports = this.GetReportDataList(provider, ReportType.TopLanding, startDate, endDate, criteria);
                            _reportDisplayData = ReportDisplayData.LandingPageData;
                        }
                    }
                    break;
                case ReportType.TopExit:
                    ReportTitle = _reportTypeName = GetMessage("sam top exit pages");
                    if (IsDimensionSupported(_dimensions.exitPagePath) && IsMetricSupported(_metrics.exits) && IsMetricSupported(_metrics.pageviews))
                    {
                        reportSummary = GetMessage("lbl visits exited from pages");
                        reportSegSummary = GetMessage("lbl visits exited from pages in segment");
                        _columnName = GetMessage("page lbl");
                        _defaultView = DisplayView.Table;
                        if (!String.IsNullOrEmpty(_forValue))
                        {
                            criteria.DimensionFilters.AddFilter(_dimensions.pagePath, DimensionFilterOperator.EqualTo, _forValue);
                            ReportTitle = _columnName;
                            reportSubtitle = _forValue;
                            _defaultView = DisplayView.Detail;

                            UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.PageViews, allowSorting);
                            reports = this.GetReportDataList(provider, ReportType.TopContent, startDate, endDate, criteria);
                            _reportDisplayData = ReportDisplayData.PageData;
                        }
                        else
                        {
                            UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Exits, allowSorting);
                            reports = this.GetReportDataList(provider, ReportType.TopExit, startDate, endDate, criteria);
                            _reportDisplayData = ReportDisplayData.ExitPageData;
                        }
                    }
                    break;
                #endregion
                #region SiteCatalyst Reports
                case ReportType.TimeVisitOnSite:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam time spent per visit");
                    if (IsDimensionSupported(_dimensions.timeVisit) && IsMetricSupported(_metrics.visits) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteMetricData;

                    }
                    break;
                case ReportType.Pages:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = GetMessage("sam pages");
                    _columnName = GetMessage("page lbl");
                    if (IsDimensionSupported(_dimensions.pageTitle) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SiteSection:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam site sections");
                    if (IsDimensionSupported(_dimensions.siteSection) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.Server:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam servers");
                    if (IsDimensionSupported(_dimensions.hostname) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.LinkExit:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam exit links");
                    if (IsDimensionSupported(_dimensions.exitPagePath) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.LinkDownload:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam file downloads");
                    if (IsDimensionSupported(_dimensions.linkDownload) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.LinkCustom:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam custom links");
                    if (IsDimensionSupported(_dimensions.linkCustom) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.PagesNotFound:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam pages not found");
                    if (IsDimensionSupported(_dimensions.pagesNotFound) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.MobileDeviceName:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam devices");
                    if (IsDimensionSupported(_dimensions.mobileDeviceName) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileManufacturer:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam manufacturer");
                    if (IsDimensionSupported(_dimensions.mobileManufacturer) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileScreenSize:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam screen size");
                    if (IsDimensionSupported(_dimensions.mobileScreenSize) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileScreenHeight:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam screen height");
                    if (IsDimensionSupported(_dimensions.mobileScreenHeight) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileScreenWidth:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam screen width");
                    if (IsDimensionSupported(_dimensions.mobileScreenWidth) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileCookieSupport:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam cookie support");
                    if (IsDimensionSupported(_dimensions.mobileCookieSupport) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileImageSupport:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam image support");
                    if (IsDimensionSupported(_dimensions.mobileImageSupport) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileColorDepth:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam color depth");
                    if (IsDimensionSupported(_dimensions.mobileColorDepth) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileAudioSupport:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam audio support");
                    if (IsDimensionSupported(_dimensions.mobileAudioSupport) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileVideoSupport:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam video support");
                    if (IsDimensionSupported(_dimensions.mobileVideoSupport) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileDRM:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam drm");
                    if (IsDimensionSupported(_dimensions.mobileDRM) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileNetProtocols:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam net protocols");
                    if (IsDimensionSupported(_dimensions.mobileNetProtocols) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileOS:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam operating system");
                    if (IsDimensionSupported(_dimensions.mobileOS) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileJavaVM:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam java version");
                    if (IsDimensionSupported(_dimensions.mobileJavaVM) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileMaxBookmarkUrlLength:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam bookmark url length");
                    if (IsDimensionSupported(_dimensions.mobileMaxBookmarkUrlLength) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileMaxMailUrlLength:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam mail url length");
                    if (IsDimensionSupported(_dimensions.mobileMaxMailUrlLength) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileMaxBroswerUrlLength:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam browser url length");
                    if (IsDimensionSupported(_dimensions.mobileMaxBrowserUrlLength) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileDeviceNumberTransmit:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam device number transmit (on/off)");
                    if (IsDimensionSupported(_dimensions.mobileDeviceNumberTransmit) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobilePushToTalk:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam ptt");
                    if (IsDimensionSupported(_dimensions.mobilePushToTalk) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileMailDecoration:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam decoration mail support");
                    if (IsDimensionSupported(_dimensions.mobileMailDecoration) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.MobileInformationServices:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam information services");
                    if (IsDimensionSupported(_dimensions.mobileInformationServices) && IsMetricSupported(_metrics.mobileViews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.MobileData;
                    }
                    break;
                case ReportType.Reloads:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam reloads");
                    if (IsDimensionSupported(_dimensions.pageTitle) && IsMetricSupported(_metrics.reloads))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.ReloadData;
                    }
                    break;
                case ReportType.AveragePageDepth:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam page depth");
                    if (IsDimensionSupported(_dimensions.pageDepth) && IsMetricSupported(_metrics.pageviews) && IsMetricSupported(_metrics.visits))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteMetricData;
                    }
                    break;
                case ReportType.TimeVisitOnPage:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam time spent on page");
                    if (IsDimensionSupported(_dimensions.timeVisit) && IsMetricSupported(_metrics.instances))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.InstancesData;
                    }
                    break;
                case ReportType.EntryPage:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam entry pages");
                    if (IsDimensionSupported(_dimensions.landingPagePath) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.EntryPageOriginal:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam original entry pages");
                    if (IsDimensionSupported(_dimensions.entryPageOriginal) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SearchEngineKeyword:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam search keywords - all");
                    if (IsDimensionSupported(_dimensions.searchKeyword) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SearchEnginePaidKeyword:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam search keywords - paid");
                    if (IsDimensionSupported(_dimensions.searchEnginePaidKeyword) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SearchEngineNaturalKeyword:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam search keywords - natural");
                    if (IsDimensionSupported(_dimensions.searchEngineNaturalKeyword) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SiteCatalystSearchEngine:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam search engines - all");
                    if (IsDimensionSupported(_dimensions.searchEngine) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SearchEnginePaid:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam search engines - paid");
                    if (IsDimensionSupported(_dimensions.searchEnginePaid) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SearchEngineNatural:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam search engines - natural");
                    if (IsDimensionSupported(_dimensions.searchEngineNatural) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.SearchEngineNaturalPageRank:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam all search page ranking");
                    if (IsDimensionSupported(_dimensions.searchEngineNaturalPageRank) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.ReferringDomain:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam referring domains");
                    if (IsDimensionSupported(_dimensions.referringDomain) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.ReferringDomainOriginal:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam search keywords - all");
                    if (IsDimensionSupported(_dimensions.searchKeyword) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.Referrer:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam referrers");
                    if (IsDimensionSupported(_dimensions.source) && IsMetricSupported(_metrics.instances))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.InstancesData;
                    }
                    break;
                case ReportType.ReferrerType:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam referrer type");
                    if (IsDimensionSupported(_dimensions.medium) && IsMetricSupported(_metrics.instances))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.InstancesData;
                    }
                    break;
                case ReportType.Products:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam products");
                    if (IsDimensionSupported(_dimensions.productName) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.ReturnFrequency:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam return frequency");
                    if (IsDimensionSupported(_dimensions.returnFrequency) && IsMetricSupported(_metrics.visits))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitsData;
                    }
                    break;
                case ReportType.VisitNumber:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam visit number");
                    if (IsDimensionSupported(_dimensions.countOfVisits) && IsMetricSupported(_metrics.pageviews) && IsMetricSupported(_metrics.visits))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.PageVisitsData;
                    }
                    break;
                case ReportType.GeoCountries:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam countries");
                    if (IsDimensionSupported(_dimensions.country) && IsMetricSupported(_metrics.visitors))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        reportSummary = "";
                        _defaultView = DisplayView.Table;
                        report = _dataManager.GetLocations(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.GeoRegions:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam regions");
                    if (IsDimensionSupported(_dimensions.region) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.GeoCities:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam cities");
                    if (IsDimensionSupported(_dimensions.city) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.GeoDMA:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam u.s. dma");
                    if (IsDimensionSupported(_dimensions.geoDMA) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.HomePage:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = GetMessage("sam visitor home page");
                    _columnName = GetMessage("page lbl");
                    if (IsDimensionSupported(_dimensions.pageTitle) && IsMetricSupported(_metrics.visits))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitsData;
                    }
                    break;
                case ReportType.SiteCatalystLanguage:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam languages");
                    if (IsDimensionSupported(_dimensions.language) && IsMetricSupported(_metrics.visitors) && IsMetricSupported(_metrics.pageviews))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        reportSummary = "";
                        _defaultView = DisplayView.Table;
                        report = _dataManager.GetLanguages(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.PageVisitorsData;
                    }
                    break;
                case ReportType.TimeZone:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam time zones");
                    if (IsDimensionSupported(_dimensions.timeVisit) && IsMetricSupported(_metrics.visitors) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.PageVisitorsData;
                    }
                    break;
                case ReportType.Domain:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam domains");
                    if (IsDimensionSupported(_dimensions.networkLocation) && IsMetricSupported(_metrics.pageviews))
                    {

                        reportSummary = GetMessage("lbl visit came from network locations");
                        _defaultView = DisplayView.Table;
                        report = _dataManager.GetNetworkLocations(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.PageVisitorsData;
                    }
                    break;
                case ReportType.TopLevelDomain:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam top level domains");
                    if (IsDimensionSupported(_dimensions.topLevelDomain) && IsMetricSupported(_metrics.visitors) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.PageVisitorsData;
                    }
                    break;
                case ReportType.SiteCatalystBrowsers:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam browsers");
                    if (IsDimensionSupported(_dimensions.browser) && IsMetricSupported(_metrics.visitors) && IsMetricSupported(_metrics.pageviews))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        report = _dataManager.GetBrowsers(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                        this.ShowPieChart = false;
                    }
                    break;
                case ReportType.BrowserType:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam browser types");
                    if (IsDimensionSupported(_dimensions.browserType) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.BrowserWidth:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam browser width");
                    if (IsDimensionSupported(_dimensions.browserWidth) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.BrowserHeight:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam browser height");
                    if (IsDimensionSupported(_dimensions.browserHeight) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.SiteCatalystOperatingSystem:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam operating systems");
                    if (IsDimensionSupported(_dimensions.operatingSystem) && IsMetricSupported(_metrics.visitors) && IsMetricSupported(_metrics.pageviews))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        report = _dataManager.GetOperatingSystems(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.PageVisitorsData;
                        this.ShowPieChart = false;
                    }
                    break;
                case ReportType.MonitorColorDepth:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam monitor color depths");
                    if (IsDimensionSupported(_dimensions.screenColors) && IsMetricSupported(_metrics.visitors))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        report = _dataManager.GetScreenColors(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                        this.ShowPieChart = false;
                    }
                    break;
                case ReportType.MonitorResolution:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam monitor resolutions");
                    if (IsDimensionSupported(_dimensions.screenResolution) && IsMetricSupported(_metrics.visitors))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        report = _dataManager.GetScreenResolutions(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                        this.ShowPieChart = false;
                    }
                    break;
                case ReportType.JavaEnabled:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam java");
                    if (IsDimensionSupported(_dimensions.javaEnabled) && IsMetricSupported(_metrics.visitors))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        report = _dataManager.GetJavaSupport(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                        this.ShowPieChart = false;
                    }
                    break;
                case ReportType.JavaScriptEnabled:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam javaScript");
                    if (IsDimensionSupported(_dimensions.javaScriptEnabled) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.JavaScriptVersion:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam javaScript version");
                    if (IsDimensionSupported(_dimensions.javaScriptVersion) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.CookiesEnabled:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam cookies");
                    if (IsDimensionSupported(_dimensions.cookiesEnabled) && IsMetricSupported(_metrics.visitors))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                    }
                    break;
                case ReportType.ConnectionTypes:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam connection types");
                    if (IsDimensionSupported(_dimensions.connectionSpeed) && IsMetricSupported(_metrics.visitors))
                    {
                        _bDrillDownReport = false;
                        _bDrillDownDetail = false;
                        report = _dataManager.GetConnectionSpeeds(provider, startDate, endDate, criteria);
                        _reportDisplayData = ReportDisplayData.VisitorsData;
                        this.ShowPieChart = false;
                    }
                    break;
                case ReportType.VisitorUSState:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam visitor state");
                    if (IsDimensionSupported(_dimensions.state) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                case ReportType.VisitorZipCode:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = _columnName = GetMessage("sam visitor zip/postal code");
                    if (IsDimensionSupported(_dimensions.zip) && IsMetricSupported(_metrics.pageviews))
                    {
                        bGeneric = true;
                        _reportDisplayData = ReportDisplayData.SiteContentData;
                    }
                    break;
                #endregion
                #region WebTrends Reports
                case ReportType.WebTrendsReport:
                    litCssTweaks.Text = cssTweak;
                    criteria.ReportGUID = this.ReportGUID;
                    bGeneric = true;
                    _reportDisplayData = ReportDisplayData.DynamicData;
                    break;
                #endregion
                case ReportType.CmsSearchTerms:
                    litCssTweaks.Text = cssTweak;
                    ReportTitle = _reportTypeName = GetMessage("lbl cms search terms");
                    reportSummary = GetMessage("lbl searches used search terms");
                    _columnName = GetMessage("lbl phrase");
                    _bDrillDownDetail = false; // not implemented
                    UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.PageViews, allowSorting);
                    report = _dataManager.GetCmsSearchTerms(startDate, endDate);
                    break;
                default:
                    ReportTitle = _reportTypeName = _reportType.ToString();
                    break;
            }
            if (bGeneric)
            {
                _bDrillDownReport = false;
                _bDrillDownDetail = false;
                reportSummary = "";
                _defaultView = DisplayView.Table;
                //UpdateCriteriaOrderBy(criteria, AnalyticsSortableField.Exits, allowSorting);
                report = _dataManager.GetReportRanked(provider, _reportType, startDate, endDate, criteria);
                reports = new List<AnalyticsReportData>();
                reports.Add(report);
                ltrVisualizationView.Text = GetMessage("generic view");
            }
        }
        catch (Exception ex)
        {
            if (ex.Message.Contains("Username and/or password not set"))
                litErrorMessage.Text = this.GetMessage("err google overview");
            else if (ex.Message.Contains("Web Services Username and/or Secret not set"))
                litErrorMessage.Text = this.GetMessage("err analytic report");
            else
                litErrorMessage.Text = ex.Message;
            ErrorPanel.Visible = true;
        }

        if (null == reports || 0 == reports.Count)
        {
            if (string.IsNullOrEmpty(provider))
            {
                this.htmReportSummary.InnerText = GetMessage("msg no data report");
            }
            else
            {
                string pName = provider.Substring(0, 1).ToUpper() + provider.Substring(1, provider.Length - 1);
                this.htmReportSummary.InnerText = String.Format(GetMessage("msg report not supported"), ReportTitle, pName); //"{0} report is not supported by {1}"
            }
        }
        else if (0 == reports[0].TotalResults)
        {
            this.htmReportSummary.InnerText = GetMessage("msg no data report");
            if (reports[0].ReportDataSet != null && !string.IsNullOrEmpty(reports[0].ReportDataSet.Title))
            {
                ReportTitle = _reportTypeName = reports[0].ReportDataSet.Title;
            }
            if (!string.IsNullOrEmpty(provider))
            {
                ReportTitle = _dataManager.GetProviderSiteURL(provider) + " " + ReportTitle;
            }
        }
        else
        {
            if (reports[0].ReportDataSet != null)
            {
                if (reports[0].ReportDataSet.HasDrillDownData != null)
                {
                    _bDrillDownReport = (String.IsNullOrEmpty(_forValue) ? reports[0].ReportDataSet.HasDrillDownData : false);
                }
                if (!string.IsNullOrEmpty(reports[0].ReportDataSet.Title))
                {
                    ReportTitle = _reportTypeName = reports[0].ReportDataSet.Title;
                }
            }
            if (!string.IsNullOrEmpty(provider))
            {
                ReportTitle = _dataManager.GetProviderSiteURL(provider) + " " + ReportTitle;
            }
            htmReportTitle.InnerText = ReportTitle;

            RenderDateRange();

            if (!String.IsNullOrEmpty(reportSubtitle))
            {
                htmReportSubtitle.InnerText = reportSubtitle;
                htmReportSubtitle.Visible = true;
            }

            if (DisplayView.Detail == this.View)
            {
                switch (_reportDisplayData)
                {
                    case ReportDisplayData.SiteData:
                    case ReportDisplayData.SiteMetricData:
                    case ReportDisplayData.SiteContentData:
                    case ReportDisplayData.InstancesData:
                    case ReportDisplayData.MobileData:
                    case ReportDisplayData.ReloadData:
                    case ReportDisplayData.VisitsData:
                    case ReportDisplayData.VisitorsData:
                    case ReportDisplayData.PageVisitsData:
                    case ReportDisplayData.PageVisitorsData:
                    case ReportDisplayData.DynamicData:
                        this.htmReportSummary.Visible = false;
                        break;
                    case ReportDisplayData.PageData:
                    case ReportDisplayData.LandingPageData:
                    case ReportDisplayData.ExitPageData:
                        string total = (reports[0].TotalPageViews > 0) ? reports[0].TotalPageViews.ToString() : "";
                        this.htmReportSummary.InnerText = String.Format(GetMessage("lbl page viewed times"), total);
                        break;
                    default:
                        throw new ArgumentOutOfRangeException("_reportDisplayData", "Unknown ReportDisplayData: " + _reportDisplayData);
                }
            }
            else
            {
                string total = "";
                switch (_reportDisplayData)
                {
                    case ReportDisplayData.SiteData:
                    case ReportDisplayData.SiteMetricData:
                        total = (reports[0].TotalVisits > 0) ? reports[0].TotalVisits.ToString() : "";
                        if (this.ProviderSegments != null && this.ProviderSegments.Count > 1)
                        {
                            this.htmReportSummary.InnerText = String.Format(reportSegSummary, total, reports[0].TotalResults, reports[0].Segment.Name);
                        }
                        else
                        {
                            this.htmReportSummary.InnerText = String.Format(reportSummary, total, reports[0].TotalResults);
                        }
                        break;
                    case ReportDisplayData.SiteContentData:
                    case ReportDisplayData.InstancesData:
                    case ReportDisplayData.PageData:
                        total = (reports[0].TotalResults > 0) ? reports[0].TotalResults.ToString() : "";
                        if (total.Length > 0)
                        {
                            if (this.ProviderSegments != null && this.ProviderSegments.Count > 1)
                            {
                                this.htmReportSummary.InnerText = String.Format(reportSegSummary, total, reports[0].TotalPageViews, reports[0].Segment.Name);
                            }
                            else
                            {
                                this.htmReportSummary.InnerText = String.Format(reportSummary, total, reports[0].TotalPageViews);
                            }
                        }
                        else
                        {
                            this.htmReportSummary.InnerText = String.Format(reportSummaryShort, reports[0].TotalPageViews);
                        }
                        break;
                    case ReportDisplayData.LandingPageData:
                        total = (reports[0].TotalEntrances > 0) ? reports[0].TotalEntrances.ToString() : "";
                        if (this.ProviderSegments != null && this.ProviderSegments.Count > 1)
                        {
                            this.htmReportSummary.InnerText = String.Format(reportSegSummary, total, reports[0].TotalResults, reports[0].Segment.Name);
                        }
                        else
                        {
                            this.htmReportSummary.InnerText = String.Format(reportSummary, total, reports[0].TotalResults);
                        }
                        break;
                    case ReportDisplayData.ExitPageData:
                        total = (reports[0].TotalExits > 0) ? reports[0].TotalExits.ToString() : "";
                        if (this.ProviderSegments != null && this.ProviderSegments.Count > 1)
                        {
                            this.htmReportSummary.InnerText = String.Format(reportSegSummary, total, reports[0].TotalResults, reports[0].Segment.Name);
                        }
                        else
                        {
                            this.htmReportSummary.InnerText = String.Format(reportSummary, total, reports[0].TotalResults);
                        }
                        break;
                    case ReportDisplayData.MobileData:
                    case ReportDisplayData.ReloadData:
                    case ReportDisplayData.VisitorsData:
                    case ReportDisplayData.VisitsData:
                    case ReportDisplayData.PageVisitorsData:
                    case ReportDisplayData.PageVisitsData:
                    case ReportDisplayData.DynamicData:
                        this.htmReportSummary.InnerText = "";
                        break;
                    default:
                        throw new ArgumentOutOfRangeException("_reportDisplayData", "Unknown ReportDisplayData: " + _reportDisplayData);
                }
            }
        }
        _reportGenerated = true;
        return reports;
    }
Esempio n. 6
0
        protected void MakeLinks()
        {
            string domainName = String.Empty;
            string completeURL = String.Empty;
            string pathAndQuery = String.Empty;
            string exceptionMsg = String.Empty;
            string urlSheme = "http";
            bool isAnalyticsError = false;

            if (!Page.IsPostBack)
            {
                string url = Request.QueryString["url"];

                if (url != null)
                {
                    URLTextbox.Text = url;
                }
            }

            if (URLTextbox.Text.Length > 1)
            {
                DateTime dtStartDate = DateRangePicker1.StartDate;
                DateTime dtEndDate = DateRangePicker1.EndDate;

                Uri url = null;
                try
                {
                    url = new Uri(URLTextbox.Text);
                }
                catch (System.UriFormatException)
                {
                    try
                    {
                        url = new Uri("http://" + URLTextbox.Text.Replace("\\", "/"));
                    }
                    catch (System.UriFormatException)
                    {
                        exceptionMsg = GetMessage("err hostname could not be parsed");
                        isAnalyticsError = true;
                    }
                }
                catch
                {
                    url = new Uri("http://" + URLTextbox.Text);
                }
                if (url != null)
                {
                    if ("localhost" == url.Host)
                    {
                        exceptionMsg = GetMessage("err localhost is not a valid url");
                        isAnalyticsError = true;
                    }
                    else
                    {
                        domainName = url.Host;
                        completeURL = url.Authority;
                        pathAndQuery = url.PathAndQuery;
                        if (url.PathAndQuery != "/")
                        {
                            completeURL += url.PathAndQuery;
                        }
                        if ("https" == url.Scheme)
                        {
                            urlSheme = "https"; // #49010: for SSL connection in parsepage()
                        }
                    }
                }
                if (isAnalyticsError)
                {
                    ltr_error.Text = exceptionMsg;
                    errMsg.Visible = true;
                }
                else
                {
                    List<AnalyticsReportData> reports = null;
                    string errDataManager = "";
                    //load providers to drop list except SiteCatalyst
                    //IAnalytics dataManager = ObjectFactory.GetAnalytics();
                    if (true == ltrShowTrafficTab.Visible)
                    {
                        try
                        {
                            List<string> siteProviders = _dataManager.GetSiteProviders(domainName);
                            string provider = "";
                            if (siteProviders.Count > 0)
                            {
                                //if (null == _updateList || !IsPostBack)
                                {
                                    _updateList = new List<string>();
                                    foreach (string p in siteProviders)
                                    {
                                        string providerType = _dataManager.GetProviderType(p);
                                        if ("Ektron.Cms.Analytics.Providers.SiteCatalystProvider" != providerType)
                                        {
                                            _updateList.Add(p);
                                        }
                                    }
                                    if (_updateList.Count > 0)
                                    {
                                        _hasProviderChanged = true;
                                        _updateList.Sort();
                                        ProviderSelect.ProviderList = _updateList;
                                        UpdateAvailableMetric(ProviderSelect.SelectedText);
                                    }
                                }
                                provider = ProviderSelect.SelectedText.ToLower();
                                IDimensions _dimensions = _dataManager.GetDimensions(provider);
                                AnalyticsCriteria criteria = new AnalyticsCriteria();
                                Dimension d = _dimensions.pagePath;
                                if (d != null)
                                {
                                    criteria.DimensionFilters.Condition = LogicalOperation.Or;
                                    criteria.DimensionFilters.AddFilter(d, DimensionFilterOperator.EqualTo, pathAndQuery);
                                    AnalyticsReportData oneReport = null;
                                    reports = new List<AnalyticsReportData>();
                                    if (this.CookieSegments.Count > 0)
                                    {
                                        foreach (string segIdPair in this.CookieSegments)
                                        {
                                            string segVal = segIdPair.Substring(0, segIdPair.IndexOf("|"));
                                            string sSegProp = segIdPair.Replace(segVal + "|", "");
                                            SegmentProperty segProp = (SegmentProperty)Convert.ToInt32(sSegProp);
                                            criteria.SegmentFilter = new SegmentFilter(segProp, SegmentFilterOperator.EqualTo, segVal);
                                            oneReport = _dataManager.GetContentDetail(provider, dtStartDate, dtEndDate, criteria);
                                            if (oneReport != null)
                                            {
                                                reports.Add(oneReport);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        oneReport = _dataManager.GetContentDetail(provider, dtStartDate, dtEndDate, criteria);
                                        if (oneReport != null)
                                        {
                                            reports.Add(oneReport);
                                        }
                                    }
                                }
                                else
                                {
                                    throw new NotImplementedException();
                                }
                            }
                            else
                            {
                                ltr_error.Text = GetMessage("err hostname no stats"); ;
                                errMsg.Visible = true;
                                reports = new List<AnalyticsReportData>();
                            }
                        }
                        catch (Exception ex)
                        {
                            if (ex.Message.Contains("(401)"))
                            {
                                errDataManager = GetMessage("err analytics data provider");
                            }
                            else
                            {
                                //errDataManager = ex.Message;
                                errDataManager = GetMessage("msg no data report");
                            }
                            ltr_error.Text = errDataManager;
                        }
                        if (reports == null || 0 == reports.Count)
                        {
                            errMsg.Visible = true;
                            AnalyticsReport.ShowSummaryChart = false;
                        }
                        else
                        {
                            AnalyticsReport.ProviderSegments = this.CookieSegments;
                            AnalyticsReport.StartDate = dtStartDate;
                            AnalyticsReport.EndDate = dtEndDate;
                            AnalyticsReport.UpdatePageUrl(URLTextbox.Text);
                            AnalyticsReport.UpdateReport(reports);
                            AnalyticsReport.ShowSummaryChart = true;
                        }
                    }
                    if (!isAnalyticsError)
                    {
                        string urlEncodedUrl = EkFunctions.UrlEncode(completeURL);
                        string htmlEncodedUrl = EkFunctions.HtmlEncode(completeURL);

                        MakeLink(hGoogleLink, GetMessage("lbl google link"), "http://www.google.com/search?hl=en&q=link:" + urlEncodedUrl + "&btnG=Google+Search&aq=f&oq=");
                        MakeLink(hGoogleSite, GetMessage("lbl google site") + " (" + domainName + ")", "http://www.google.com/search?hl=en&q=site:" + domainName + "&btnG=Google+Search&aq=f&oq=");
                        MakeLink(hGoogleCache, GetMessage("lbl goggle cache"), "http://www.google.com/search?hl=en&q=cache:" + urlEncodedUrl + "&btnG=Google+Search&aq=f&oq=");
                        MakeLink(hGoogleInfo, GetMessage("lbl google info"), "http://www.google.com/search?hl=en&q=info:" + urlEncodedUrl + "&btnG=Google+Search&aq=f&oq=");
                        MakeLink(hGoogleRelated, GetMessage("lbl google related"), "http://www.google.com/search?hl=en&q=related:" + urlEncodedUrl + "&btnG=Google+Search&aq=f&oq=");
                        MakeLink(hGoogleRobots, GetMessage("lbl google robots txt"), "http://" + domainName + "/robots.txt");
                        MakeLink(hGoogleMobileImages, GetMessage("lbl google mobile images"), "mobilephone.aspx?url=" + urlEncodedUrl);
                        MakeLink(hGoogleMobileNoImages, GetMessage("lbl google mobile no images"), "mobilephone.aspx?noimgages=1&url=" + urlEncodedUrl);

                        MakeLink(hW3CValidation, GetMessage("lbl w3c validation"), "http://validator.w3.org/check?uri=http://" + urlEncodedUrl);
                        MakeLink(hW3CLinkCheck, GetMessage("lbl w3c link check"), "http://validator.w3.org/checklink?uri=http://" + urlEncodedUrl);
                        MakeLink(hW3CCSS, GetMessage("lbl w3c css"), "http://jigsaw.w3.org/css-validator/validator?uri=http://" + urlEncodedUrl);
                        MakeLink(hW3CMobile, GetMessage("lbl w3c mobile"), "http://validator.w3.org/mobile/?docAddr=http://" + urlEncodedUrl);

                        MakeLink(hAlexaSiteInfo, GetMessage("lbl alexa overview") + " (" + domainName + ")", "http://www.alexa.com/siteinfo/" + domainName);
                        MakeLink(hAlexaTrafficStats, GetMessage("lbl alexa ranking traffic"), "http://www.alexa.com/siteinfo/" + domainName + "#trafficstats");
                        MakeLink(hAlexaRelatedLinks, GetMessage("lbl alexa related"), "http://www.alexa.com/siteinfo/" + domainName + "#relatedlinks");
                        MakeLink(hAlexaKeywords, GetMessage("lbl alexa keywords"), "http://www.alexa.com/siteinfo/" + domainName + "#keywords");
                        MakeLink(hAlexaClickstream, GetMessage("lbl alexa clickstream"), "http://www.alexa.com/siteinfo/" + domainName + "#clickstream");
                        MakeLink(hAlexaLinksIn, GetMessage("lbl alexa linked to"), "http://www.alexa.com/site/linksin/" + domainName);

                        parsepage(urlSheme + "://" + completeURL);
                    }
                }
            }
            else
            {
                setErrorMessage(GetMessage("js err roll url"));
            }
        }
Esempio n. 7
0
    private List<TrendReportData> GetAnalyticsReport(string provider, string sortExpression, SortDirection sortDirection)
    {
        _metrics = _dataManager.GetMetrics(provider);

        List<TrendReportData> reports = new List<TrendReportData>();
        TrendReportData report = null;
        DateTime startDate = _startDate;
        DateTime endDate = _endDate;
        string reportSummary = "";

        if (ErrorPanel.Visible)
        {
            this.htmReportSummary.InnerText = "";
            return null;
        }

        string cssTweak = string.Empty;
        string providerType = _dataManager.GetProviderType(provider);
        if (providerType != "Ektron.Cms.Analytics.Providers.GoogleAnalyticsProvider")
        {
            if (FromWidget)
            {
                cssTweak = "<style type='text/css'> .EktronPersonalization .analyticsReport input.SegmentPopupBtn {display: none;} </style>";
            }
            else
            {
                cssTweak = "<style type='text/css'> input.SegmentPopupBtn {display: none;} </style>";
            }
        }
        litCssTweaks.Text = cssTweak;

        AnalyticsCriteria criteria = new AnalyticsCriteria();

        try
        {
            switch (_reportType)
            {

                case ReportType.Visits:
                    ReportTitle = GetMessage("lbl visits for all visitors");
                    if (IsMetricSupported(_metrics.visits))
                    {
                        //report = _dataManager.GetVisitsTrend(provider, startDate, endDate, criteria);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        reportSummary = String.Format(GetMessage("lbl visits or visits per day"), reports[0].Total, EkFunctions.GetRatio(reports[0].Total, reports[0].Items.Count));
                    }
                    break;

                case ReportType.AbsoluteUniqueVisitors:
                    ReportTitle = GetMessage("sam absolute unique visitors");
                    if (IsMetricSupported(_metrics.visitors))
                    {
                        //report = _dataManager.GetAbsoluteUniqueVisitorsTrend(provider, startDate, endDate, criteria);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        reportSummary = String.Format(GetMessage("lbl absolute unique visitors report"), reports[0].Total, 0);
                    }
                    break;

                case ReportType.Pageviews:
                    ReportTitle = GetMessage("lbl pageviews for all visitors");
                    if (IsMetricSupported(_metrics.pageviews))
                    {
                        //report = _dataManager.GetPageViewsTrend(provider, startDate, endDate, criteria);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        reportSummary = String.Format(GetMessage("lbl pageviews trend"), reports[0].Total, 0);
                    }
                    break;

                case ReportType.AveragePageviews:
                    ReportTitle = GetMessage("lbl average pageviews for all visitors");
                    if (IsMetricSupported(_metrics.pageviews) && IsMetricSupported(_metrics.visits))
                    {
                        //report = _dataManager.GetAveragePageViewsTrend(provider, startDate, endDate, criteria);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        reportSummary = String.Format(GetMessage("lbl pages per visit"), reports[0].Total, 0);
                        dataType = DataType.Value;
                    }
                    break;

                case ReportType.TimeOnSite:
                    ReportTitle = GetMessage("lbl time on site for all visitors");
                    if (IsMetricSupported(_metrics.timeOnSite) && IsMetricSupported(_metrics.visits))
                    {
                        //report = _dataManager.GetTimeOnSiteTrend(provider, startDate, endDate, criteria);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        reportSummary = String.Format(GetMessage("lbl avg time on site"), TimeSpan.FromSeconds(Math.Round(Convert.ToDouble(reports[0].Total))), 0);
                        dataType = DataType.Time;
                    }
                    break;

                case ReportType.BounceRate:
                    ReportTitle = GetMessage("lbl bounce rate for all visitors");
                    if (IsMetricSupported(_metrics.bounces) && IsMetricSupported(_metrics.entrances))
                    {
                        //report = _dataManager.GetBounceRateTrend(provider, startDate, endDate, criteria);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        if (reports != null && reports.Count > 0)
                        {
                            reportSummary = String.Format(GetMessage("lbl bounce rate report"), reports[0].Total, 0);
                            dataType = DataType.Rate;
                        }
                    }
                    break;

                case ReportType.DailyVisitors:
                    ReportTitle = reportSummary = GetMessage("lbl daily unique visitor");
                    if (IsMetricSupported(_metrics.dailyVisitors))
                    {
                        //report = _dataManager.GetReportTrend(provider, _reportType, startDate, endDate, criteria);
                        reports = this.GetReportDataList(provider, _reportType, startDate, endDate, criteria);
                        dataType = DataType.Value;
                    }
                    break;
                case ReportType.pageViewsTrends:
                    ReportTitle = reportSummary = GetMessage("sam page views trends");
                    if (IsMetricSupported(_metrics.pageviews))
                    {
                        report = _dataManager.GetPageViewsTrend(provider, startDate, endDate, criteria);
                        reports.Add(report);
                        reportSummary = String.Format(GetMessage("lbl pageviews trend"), reports[0].Total, 0);
                    }
                    break;
                case ReportType.kbytesTrend:
                    ReportTitle = reportSummary = GetMessage("sam bandwidth: kbytes transferred trend");
                    if (IsMetricSupported(_metrics.kBytes))
                    {
                        report = _dataManager.GetReportTrend(provider, _reportType, startDate, endDate, criteria);
                        reports.Add(report);
                        dataType = DataType.Value;
                    }
                    break;
            }

            if (reports != null && reports.Count > 0)
            {
                maxValue = reports[0].MaximumValue;
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }

        if (null == reports || 0 == reports.Count)
        {
            this.htmReportSummary.InnerText = String.Format(GetMessage("msg report not supported"), ReportTitle, provider);
        }
        else
        {
            reports[0].Items.Sort(new Comparison<ReportItem>(ReportItem.CompareDate));

            this.htmReportTitle.Visible = true;
            this.htmReportTitle.InnerText = reportSummary;
            RenderDateRange();
            this.htmReportSummary.Visible = false;
            //this.htmReportSubtitle.Visible = true;
            //this.htmReportSubtitle.InnerText = reportSummary;
            //this.htmReportSummary.InnerText = reportSummary;
        }
        _reportGenerated = true;
        return reports;
    }