コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ReceivePoisonMessageDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public ReceivePoisonMessageDecorator(IMetrics metrics,
     IReceivePoisonMessage handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _meterError = metrics.Meter($"{connectionInformation.QueueName}.{name}.PoisonHandleMeter", Units.Items);
     _handler = handler;
 }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RollbackMessageDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public RollbackMessageDecorator(IMetrics metrics,
     IRollbackMessage handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _rollbackCounter = metrics.Counter($"{connectionInformation.QueueName}.{name}.RollbackCounter", Units.Items);
     _handler = handler;
 }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SendHeartBeatDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public SendHeartBeatDecorator(IMetrics metrics,
     ISendHeartBeat handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _timer = metrics.Timer($"{connectionInformation.QueueName}.{name}.SendTimer", Units.Calls);
     _handler = handler;
 }
コード例 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueueCreationDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public MessageHandlerDecorator(IMetrics metrics,
     IMessageHandler handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _runCodeTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.HandleTimer", Units.Calls);
     _handler = handler;
 }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ReceiveMessagesErrorDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public ReceiveMessagesErrorDecorator(IMetrics metrics,
     IReceiveMessagesError handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _meterError = metrics.Meter($"{connectionInformation.QueueName}.{name}.MessageFailedProcessingErrorMeter", Units.Items);
     _meterRetry = metrics.Meter($"{connectionInformation.QueueName}.{name}.MessageFailedProcessingRetryMeter", Units.Items);
     _handler = handler;
 }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueueCreationDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public QueueCreationDecorator(IMetrics metrics,
     IQueueCreation handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _createQueueTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.CreateQueueTimer", Units.Calls);
     _removeQueueTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.RemoveQueueTimer", Units.Calls);
     _handler = handler;
 }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InternalSerializerDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public LinqCompilerDecorator(IMetrics metrics,
     ILinqCompiler handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _compileActionTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.CompileActionTimer", Units.Calls);
     _compileFunctionTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.CompileFunctionTimer", Units.Calls);
     _handler = handler;
 }
コード例 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MessageMethodHandlingDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public MessageMethodHandlingDecorator(IMetrics metrics,
     IMessageMethodHandling handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _runMethodCompiledCodeTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.HandleCompiledMethodTimer", Units.Calls);
     _runFunctionCompiledCodeTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.HandleCompiledFunctionTimer", Units.Calls);
     _runMethodDynamicCodeTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.HandleDynamicMethodTimer", Units.Calls);
     _runFunctionDynamicCodeTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.HandleDynamicFunctionTimer", Units.Calls);
     _handler = handler;
 }
コード例 #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DelayedProcessingActionDecorator" /> class.
        /// </summary>
        /// <param name="metrics">The metrics factory.</param>
        /// <param name="handler">The handler.</param>
        /// <param name="connectionInformation">The connection information.</param>
        public DelayedProcessingActionDecorator(IMetrics metrics,
            IDelayedProcessingAction handler,
            IConnectionInformation connectionInformation)
        {
            Guard.NotNull(() => metrics, metrics);
            Guard.NotNull(() => handler, handler);

            var name = handler.GetType().Name;
            _timer = metrics.Timer($"{connectionInformation.QueueName}.{name}.RunTimer", Units.Calls);
            _counter = metrics.Counter($"{connectionInformation.QueueName}.{name}.RunCounter", Units.Items);
            _handler = handler;
        }
コード例 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ReceiveMessagesDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="headers">The headers.</param>
 /// <param name="getTime">The get time.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public ReceiveMessagesDecorator(IMetrics metrics,
     IHeaders headers,
     IGetTimeFactory getTime,
     IReceiveMessages handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _meter = metrics.Meter($"{connectionInformation.QueueName}.{name}.ReceiveMessageMeter", Units.Items);
     _waitTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.WaitForDeQueueMeter", Units.None);
     _handler = handler;
     _getTime = getTime;
     _headers = headers;
 }
コード例 #11
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SendMessagesDecorator" /> class.
        /// </summary>
        /// <param name="metrics">The metrics factory.</param>
        /// <param name="handler">The handler.</param>
        /// <param name="connectionInformation">The connection information.</param>
        public SendMessagesDecorator(IMetrics metrics,
            ISendMessages handler,
            IConnectionInformation connectionInformation)
        {
            var name = handler.GetType().Name;
            _sendTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.SendTimer", Units.Calls);
            _sendBatchTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.SendBatchTimer", Units.Calls);
            _sendAsyncTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.SendAsyncTimer", Units.Calls);
            _sendBatchAsyncTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.SendBatchAsyncTimer", Units.Calls);

            _sendMeter = metrics.Meter($"{connectionInformation.QueueName}.{name}.SendMessagesMeter", Units.Items, TimeUnits.Minutes);
            _sendErrorMeter = metrics.Meter($"{connectionInformation.QueueName}.{name}.SendMessagesErrorMeter", Units.Items, TimeUnits.Minutes);
            _handler = handler;
        }
コード例 #12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ExpressionSerializerDecorator" /> class.
        /// </summary>
        /// <param name="metrics">The metrics factory.</param>
        /// <param name="handler">The handler.</param>
        /// <param name="connectionInformation">The connection information.</param>
        public ExpressionSerializerDecorator(IMetrics metrics,
            IExpressionSerializer handler,
            IConnectionInformation connectionInformation)
        {
            var name = handler.GetType().Name;
            _methodToBytesTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.ConvertMethodToBytesTimer", Units.Calls);
            _bytesToMethodTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.ConvertBytesToMethodTimer", Units.Calls);
            _resultMethodSizeHistogram = metrics.Histogram($"{connectionInformation.QueueName}.{name}.ConvertMethodToBytesHistogram", Units.Bytes,
                SamplingTypes.LongTerm);

            _functionToBytesTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.ConvertFunctionToBytesTimer", Units.Calls);
            _bytesToFunctionTimer = metrics.Timer($"{connectionInformation.QueueName}.{name}.ConvertBytesToFunctionTimer", Units.Calls);
            _resultFunctionSizeHistogram = metrics.Histogram($"{connectionInformation.QueueName}.{name}.ConvertFunctionToBytesHistogram", Units.Bytes,
                SamplingTypes.LongTerm);

            _handler = handler;
        }
コード例 #13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WorkerNotification" /> class.
        /// </summary>
        /// <param name="headerNames">The header names.</param>
        /// <param name="cancelWork">The cancel work.</param>
        /// <param name="configuration">The configuration.</param>
        /// <param name="log">The log.</param>
        /// <param name="metrics">The metrics factory.</param>
        public WorkerNotification(IHeaders headerNames,
            IQueueCancelWork cancelWork,
            TransportConfigurationReceive configuration,
            ILogFactory log,
            IMetrics metrics)
        {
            Guard.NotNull(() => headerNames, headerNames);
            Guard.NotNull(() => cancelWork, cancelWork);
            Guard.NotNull(() => configuration, configuration);
            Guard.NotNull(() => log, log);
            Guard.NotNull(() => metrics, metrics);

            HeaderNames = headerNames;
            WorkerStopping = cancelWork;
            TransportSupportsRollback = configuration.MessageRollbackSupported;
            Log = log.Create();
            Metrics = metrics;
        }
コード例 #14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SmartThreadPoolTaskScheduler"/> class.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="waitForFreeThread">The wait for free thread.</param>
        /// <param name="metrics">the metrics factory</param>
        public SmartThreadPoolTaskScheduler(ITaskSchedulerConfiguration configuration, 
            IWaitForEventOrCancelThreadPool waitForFreeThread,
            IMetrics metrics)
        {
            Guard.NotNull(() => configuration, configuration);
            Guard.NotNull(() => waitForFreeThread, waitForFreeThread);
            Guard.NotNull(() => metrics, metrics);

            _configuration = configuration;
            _waitForFreeThread = waitForFreeThread;
            _metrics = metrics;
            _groups = new ConcurrentDictionary<IWorkGroup, WorkGroupWithItem>();
            _clients = new ConcurrentDictionary<int, int>();

            var name = GetType().Name;
            _taskCounter = metrics.Counter($"{name}.TaskCounter", Units.Items);
            _clientCounter = metrics.Counter($"{name}.ClientCounter", Units.Items);
        }
コード例 #15
0
        /// <summary>
        /// Initializes a new instance of the <see cref="LinqCompileCacheDecorator" /> class.
        /// </summary>
        /// <param name="handler">The handler.</param>
        /// <param name="cache">The cache.</param>
        /// <param name="cachePolicy">The cache policy.</param>
        /// <param name="metrics">The metrics.</param>
        /// <param name="connectionInformation">The connection information.</param>
        public LinqCompileCacheDecorator(
            ILinqCompiler handler,
            ObjectCache cache,
            ICachePolicy<ILinqCompiler> cachePolicy,
            IMetrics metrics,
             IConnectionInformation connectionInformation)
        {
            _handler = handler;
            _cache = cache;
            _itemPolicy = new CacheItemPolicy {SlidingExpiration = cachePolicy.SlidingExpiration};
            var name = handler.GetType().Name;

            _counterActionCacheHit = metrics.Counter($"{connectionInformation.QueueName}.{name}.LinqActionCacheHitCounter", Units.Items);
            _counterActionCacheMiss = metrics.Counter($"{connectionInformation.QueueName}.{name}.LinqActionCacheMissCounter", Units.Items);
            _counterActionCacheUnique = metrics.Counter($"{connectionInformation.QueueName}.{name}.LinqActionUniqueFlaggedCounter", Units.Items);

            _counterFunctionCacheHit = metrics.Counter($"{connectionInformation.QueueName}.{name}.LinqFunctionCacheHiCountert", Units.Items);
            _counterFunctionCacheMiss = metrics.Counter($"{connectionInformation.QueueName}.{name}.LinqFunctionCacheMissCounter", Units.Items);
            _counterFunctionCacheUnique = metrics.Counter($"{connectionInformation.QueueName}.{name}.LinqFunctionUniqueFlaggedCounter", Units.Items);

        }
コード例 #16
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MessageInterceptorDecorator" /> class.
        /// </summary>
        /// <param name="metrics">The metrics factory.</param>
        /// <param name="handler">The handler.</param>
        /// <param name="connectionInformation">The connection information.</param>
        public MessageInterceptorDecorator(IMetrics metrics,
            IMessageInterceptor handler,
            IConnectionInformation connectionInformation)
        {
            _handler = handler;
            var name = handler.GetType().Name;

            _metricTimerBytes =
                metrics.Timer($"{connectionInformation.QueueName}.{name}.BytesToMessageTimer", Units.Calls);

            _metricTimerMessage =
                metrics.Timer($"{connectionInformation.QueueName}.{name}.MessageToBytesTimer", Units.Calls);

            _metricHistogram = metrics.Histogram($"{connectionInformation.QueueName}.{name}.MessageToBytesHistogram", Units.Bytes,
                SamplingTypes.LongTerm);

            _metricHistogramDelta = metrics.Histogram($"{connectionInformation.QueueName}.{name}.MessageToBytesDeltaHistogram", Units.Bytes,
                SamplingTypes.LongTerm);

            _metricHistogramOptOut = metrics.Histogram($"{connectionInformation.QueueName}.{name}.OptOutOfGraphHistogram",
                Units.Bytes, SamplingTypes.LongTerm);
        }
コード例 #17
0
 public CurrencyConverterClient(
     ILogger <CurrencyConverterClient> logger, HttpClient httpClient, FaceSettings faceSettings, IMetrics metrics)
 {
     httpClient.BaseAddress = new Uri("https://free.currconv.com");
     _logger       = logger;
     _httpClient   = httpClient;
     _faceSettings = faceSettings;
     _metrics      = metrics;
 }
コード例 #18
0
ファイル: Report.ascx.cs プロジェクト: jaytem/minGit
    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;
    }
コード例 #19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AsyncMessagePump"/> class.
        /// </summary>
        /// <param name="queueName">Name of the queue.</param>
        /// <param name="storageAccount">The cloud storage account.</param>
        /// <param name="concurrentTasks">The number of concurrent tasks.</param>
        /// <param name="visibilityTimeout">The visibility timeout.</param>
        /// <param name="maxDequeueCount">The maximum dequeue count.</param>
        /// <param name="metrics">The system where metrics are published</param>
        public AsyncMessagePump(string queueName, CloudStorageAccount storageAccount, int concurrentTasks = 25, TimeSpan?visibilityTimeout = null, int maxDequeueCount = 3, IMetrics metrics = null)
        {
            if (concurrentTasks < 1)
            {
                throw new ArgumentException("Number of concurrent tasks must be greather than zero", nameof(concurrentTasks));
            }
            if (maxDequeueCount < 1)
            {
                throw new ArgumentException("Number of retries must be greather than zero", nameof(maxDequeueCount));
            }

            _queueManager      = new QueueManager(queueName, storageAccount);
            _concurrentTasks   = concurrentTasks;
            _visibilityTimeout = visibilityTimeout;
            _maxDequeueCount   = maxDequeueCount;

            if (metrics == null)
            {
                var noop = new MetricsBuilder();
                noop.Configuration.Configure(new MetricsOptions()
                {
                    Enabled          = false,
                    ReportingEnabled = false
                });
                _metrics = noop.Build();
            }
            else
            {
                _metrics = metrics;
            }

            OnQueueEmpty = cancellationToken => Task.Delay(1500, cancellationToken).Wait();
            OnError      = (message, exception, isPoison) => _logger.ErrorException("An error occured when processing a message", exception);
        }
コード例 #20
0
 public static TracerDecoratorBuilder WithAppMetrics(this TracerDecoratorBuilder builder, IMetrics metrics, bool allEnabled = true, Action <OpenTracingAppMetricsDecoratorOptions> setupOptions = null)
 => WithAppMetrics(builder, metrics, OpenTracingAppMetricsDecoratorOptions.Default, setupOptions ?? (opts => { }));
コード例 #21
0
 public PKCommand(NpgsqlCommand inner, PKConnection ourConnection, ILogger logger, IMetrics metrics)
 {
     Inner          = inner;
     _ourConnection = ourConnection;
     _logger        = logger.ForContext <PKCommand>();
     _metrics       = metrics;
 }
コード例 #22
0
        private static TracerDecoratorBuilder WithAppMetrics(this TracerDecoratorBuilder builder, IMetrics metrics, OpenTracingAppMetricsDecoratorOptions options, Action <OpenTracingAppMetricsDecoratorOptions> setupOptions)
        {
            options = options ?? throw new ArgumentNullException(nameof(options));
            setupOptions?.Invoke(options);

            if (options.SpansCountersEnabled)
            {
                var spansCounter = new CounterOptions
                {
                    Name = options.SpansCounterName
                };

                builder.OnSpanStarted((span, operationName) =>
                {
                    metrics.Measure.Counter.Increment(spansCounter, operationName);

                    if (options.DistinctOperationsCountersEnabled)
                    {
                        var distinctCounter = new CounterOptions {
                            Name = options.DistinctOperationCountersName + operationName
                        };
                        metrics.Measure.Counter.Increment(distinctCounter);
                    }
                });

                builder.OnSpanFinished((span, operationName) =>
                {
                    metrics.Measure.Counter.Decrement(spansCounter, operationName);

                    if (options.DistinctOperationsCountersEnabled)
                    {
                        var distinctCounter = new CounterOptions {
                            Name = options.DistinctOperationCountersName + operationName
                        };
                        metrics.Measure.Counter.Decrement(distinctCounter);
                    }
                });
            }

            if (options.SpansMetersEnabled)
            {
                var spansMeter = new MeterOptions
                {
                    Name = options.SpansMeterName
                };

                builder.OnSpanStarted((span, operationName) =>
                {
                    metrics.Measure.Meter.Mark(spansMeter, operationName);

                    if (options.DistinctOperationsMetersEnabled)
                    {
                        var distinctMeter = new MeterOptions {
                            Name = options.DistinctOperationMetersName + operationName
                        };
                        metrics.Measure.Meter.Mark(distinctMeter);
                    }
                });
            }

            if (options.SpansTimersEnabled)
            {
                var spansTimer = new TimerOptions
                {
                    Name         = options.SpansTimerName,
                    DurationUnit = TimeUnit.Milliseconds,
                    RateUnit     = TimeUnit.Milliseconds
                };

                builder.OnSpanStartedWithCallback((span, operationName) =>
                {
                    var timerContext = metrics.Measure.Timer.Time(spansTimer, operationName);

                    TimerContext distinctTimerContext = default(TimerContext);
                    if (options.DistinctOperationsTimersEnabled)
                    {
                        var distinctTimer = new TimerOptions
                        {
                            Name         = options.DistinctOperationTimersName + operationName,
                            DurationUnit = TimeUnit.Milliseconds,
                            RateUnit     = TimeUnit.Milliseconds
                        };
                        distinctTimerContext = metrics.Measure.Timer.Time(distinctTimer);
                    }

                    return((sp, op) =>
                    {
                        timerContext.Dispose();
                        distinctTimerContext.Dispose();
                    });
                });
            }

            return(builder);
        }
コード例 #23
0
 public Builder WithMetrics(IMetrics metrics)
 {
     Metrics = metrics;
     return(this);
 }
コード例 #24
0
ファイル: Startup.cs プロジェクト: tsingh2k15/tweek
        private StorageSynchronizer CreateStorageSynchronizer(IObjectStorage storageClient, ShellHelper.ShellExecutor executor, IMetrics metrics)
        {
            var key = GitKeyHelper.GetKeyFromEnvironment();
            var storageSynchronizer = new StorageSynchronizer(storageClient, executor, metrics)
            {
                Converters =
                {
                    new RulesConverter(),
                    new ExternalAppsConverter(key),
                    new PolicyConverter(),
                    new SubjectExtractionRulesConverter(),
                }
            };

            return(storageSynchronizer);
        }
コード例 #25
0
 public MetricsContextFilteringTests(MetricsWithMultipleContextsSamplesFixture fixture)
 {
     _metrics = fixture.Metrics;
 }
コード例 #26
0
 public Worker(ILogger <Worker> logger, IOptions <ForzaConfig> options, IMetrics metrics)
 {
     _logger      = logger;
     config       = options.Value;
     this.metrics = metrics;
 }
コード例 #27
0
 public static void Gauge(this IMetrics metrics, string name, float value)
 {
     metrics.Gauge(name, (uint)Math.Abs(value));
 }
コード例 #28
0
 public static void Gauge(this IMetrics metrics, string name, Int32 value)
 {
     metrics.Gauge(name, (uint)value);
 }
コード例 #29
0
 public static void Gauge(this IMetrics metrics, string name, SByte value)
 {
     metrics.Gauge(name, (uint)(value) & 0xff);
 }
コード例 #30
0
 public static void Gauge(this IMetrics metrics, string name, f32_vec vec, float scale = 1)
 {
     metrics.Gauge($"{name}.x", vec.X * scale);
     metrics.Gauge($"{name}.y", vec.Y * scale);
     metrics.Gauge($"{name}.z", vec.Z * scale);
 }
コード例 #31
0
 public void StartReportRun(IMetrics metrics)
 {
 }
コード例 #32
0
        public async Task RunAsync(
            CTLConfig config,
            CosmosClient cosmosClient,
            ILogger logger,
            IMetrics metrics,
            string loggingContextIdentifier,
            CancellationToken cancellationToken)
        {
            logger.LogInformation("Initializing counters and metrics.");
            CounterOptions documentCounter = new CounterOptions {
                Name = "#Documents received", Context = loggingContextIdentifier
            };
            GaugeOptions leaseGauge = new GaugeOptions {
                Name = "#Leases created", Context = loggingContextIdentifier
            };

            string    leaseContainerId = Guid.NewGuid().ToString();
            Container leaseContainer   = await cosmosClient.GetDatabase(config.Database).CreateContainerAsync(leaseContainerId, "/id");

            logger.LogInformation("Created lease container {0}", leaseContainerId);

            try
            {
                object lockObject    = new object();
                long   documentTotal = 0;
                ChangeFeedProcessor changeFeedProcessor = cosmosClient.GetContainer(config.Database, config.Collection)
                                                          .GetChangeFeedProcessorBuilder <SimpleItem>("ctlProcessor",
                                                                                                      (IReadOnlyCollection <SimpleItem> docs, CancellationToken token) =>
                {
                    lock (lockObject)
                    {
                        documentTotal += docs.Count;
                    }

                    metrics.Measure.Counter.Increment(documentCounter, docs.Count);
                    return(Task.CompletedTask);
                })
                                                          .WithLeaseContainer(leaseContainer)
                                                          .WithInstanceName(Guid.NewGuid().ToString())
                                                          .WithStartTime(DateTime.MinValue.ToUniversalTime())
                                                          .Build();

                await changeFeedProcessor.StartAsync();

                logger.LogInformation("Started change feed processor");

                await Task.Delay(config.RunningTimeDurationAsTimespan, cancellationToken);

                logger.LogInformation("Stopping change feed processor");
                await changeFeedProcessor.StopAsync();

                // List leases
                using FeedIterator <LeaseSchema> leaseIterator = leaseContainer.GetItemQueryIterator <LeaseSchema>();
                int leaseTotal          = 0;
                List <FeedRange> ranges = new List <FeedRange>();
                while (leaseIterator.HasMoreResults)
                {
                    FeedResponse <LeaseSchema> response = await leaseIterator.ReadNextAsync();

                    foreach (LeaseSchema lease in response)
                    {
                        if (lease.LeaseToken != null)
                        {
                            logger.LogInformation($"Lease for range {lease.LeaseToken} - {lease.FeedRange.EffectiveRange.Min} - {lease.FeedRange.EffectiveRange.Max}");
                            ranges.Add(lease.FeedRange.EffectiveRange);
                            leaseTotal++;
                        }
                    }
                }

                logger.LogInformation($"Total count of leases {leaseTotal}.");
                metrics.Measure.Gauge.SetValue(leaseGauge, leaseTotal);

                string previousMin = "";
                foreach (FeedRange sortedRange in ranges.OrderBy(range => range.Min))
                {
                    if (previousMin != sortedRange.Min)
                    {
                        logger.LogError($"Expected a sorted range with Min <{previousMin}> but encountered range <{sortedRange.Min}>:<{sortedRange.Max}>");
                    }

                    previousMin = sortedRange.Max;
                }

                if (config.PreCreatedDocuments > 0)
                {
                    if (this.initializationResult.InsertedDocuments != documentTotal)
                    {
                        logger.LogError($"Expected to receive {this.initializationResult.InsertedDocuments} documents and got {documentTotal}");
                    }
                }
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Failure during Change Feed Processor initialization");
            }
            finally
            {
                await leaseContainer.DeleteContainerAsync();

                if (this.initializationResult.CreatedDatabase)
                {
                    await cosmosClient.GetDatabase(config.Database).DeleteAsync();
                }

                if (this.initializationResult.CreatedContainer)
                {
                    await cosmosClient.GetContainer(config.Database, config.Collection).DeleteContainerAsync();
                }
            }
        }
コード例 #33
0
 public PocoRepository(TParent parent, IMetrics metrics, IStorePocos store, IMessageSerializer serializer, IDomainUnitOfWork uow)
     : base(metrics, store, serializer, uow)
 {
     _parent = parent;
 }
コード例 #34
0
 private void setMetrics(IMetrics metrics)
 {
     _x.descend("Metrics");
     for (_x.descendCollection("Metric"); _x.nextInCollection();)
     {
         var value = _x.getValueAsInt("Value");
         switch (_x["Name"])
         {
             case "MaintainabilityIndex":
                 metrics.MaintainabilityIndex = value;
                 break;
             case "CyclomaticComplexity":
                 metrics.CyclomaticComplexity = value;
                 break;
             case "ClassCoupling":
                 metrics.ClassCoupling = value;
                 break;
             case "LinesOfCode":
                 metrics.LinesOfCode = value;
                 break;
         }
     }
     _x.ascend();
 }
コード例 #35
0
 public PluginContext(IConfiguration config, ILogger logger, IMetrics metrics) : this(config, logger, metrics, null, null)
 {
 }
コード例 #36
0
 public static TracerDecoratorBuilder WithAppMetrics(this TracerDecoratorBuilder builder, IMetrics metrics, OpenTracingAppMetricsDecoratorOptions options)
 => WithAppMetrics(builder, metrics, options, opts => { });
 public ExceptionThrowingController(IMetrics metrics)
 {
     _metrics = metrics ?? throw new ArgumentNullException(nameof(metrics));
 }
コード例 #38
0
ファイル: Trend.ascx.cs プロジェクト: jaytem/minGit
    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;
    }
コード例 #39
0
ファイル: PushHandler.cs プロジェクト: tsingh2k15/tweek
        public static Func <HttpRequest, HttpResponse, RouteData, Task> Create(SyncActor syncActor, IMetrics metrics, HooksHelper hooksHelper)
        {
            return(async(req, res, routedata) =>
            {
                var commitId = req.Query["commit"].ToString();
                if (!IsCommitIdString(commitId))
                {
                    res.StatusCode = 400;
                    await res.WriteAsync("Invalid commit id");

                    return;
                }

                try
                {
                    await syncActor.PushToUpstream(commitId);

                    metrics.Measure.Counter.Increment(Push, Success);

                    #pragma warning disable CS4014
                    hooksHelper.TriggerNotificationHooksForCommit(commitId);
                    #pragma warning restore CS4014
                }
                catch (Exception ex)
                {
                    metrics.Measure.Counter.Increment(Push, Failure);
                    res.StatusCode = 500;
                    await res.WriteAsync(ex.Message);
                }
                #pragma warning disable CS4014
                syncActor.SyncToLatest();
                #pragma warning restore CS4014
            });
        }
コード例 #40
0
 public SatisfyingController(IMetrics metrics, RequestDurationForApdexTesting durationForApdexTesting)
 {
     _metrics = metrics ?? throw new ArgumentNullException(nameof(metrics));
     _durationForApdexTesting = durationForApdexTesting;
 }
コード例 #41
0
 public MetricsInterceptor(IMetrics metrics)
 {
     _metrics = metrics;
 }
コード例 #42
0
 public UnitOfWorkExecutor(IMetrics metrics)
 {
     _metrics = metrics;
 }
コード例 #43
0
 public HomeController(IMetrics metrics)
 {
     _metrics = metrics;
 }
コード例 #44
0
 public MetricsFilteringTests(MetricsWithSamplesFixture fixture)
 {
     _metrics = fixture.Metrics;
 }
コード例 #45
0
        public void StartReport(IMetrics metrics)
        {
            _logger.LogDebug("Starting TextFile Report Run");

            _stringReporter.StartReport(metrics);
        }
コード例 #46
0
        public static IMetrics IncrementActiveRequests(this IMetrics metrics)
        {
            metrics.Measure.Counter.Increment(HttpRequestMetricsRegistry.Counters.ActiveRequests);

            return(metrics);
        }
コード例 #47
0
        public static IMetrics UpdatePostAndPutRequestSize(this IMetrics metrics, long value)
        {
            metrics.Measure.Histogram.Update(HttpRequestMetricsRegistry.Histograms.PostAndPutRequestSize, value);

            return(metrics);
        }
コード例 #48
0
 public CommandAcceptor(IMetrics metrics)
 {
     _metrics = metrics;
 }
コード例 #49
0
 public void StartReportRun(IMetrics metrics)
 {
     _buffer.WriteMetricStartReport(
         Name,
         metrics.Clock.FormatTimestamp(metrics.Clock.UtcDateTime));
 }