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