Пример #1
0
        /// <summary>
        /// Builds the Google Analytics JavaScript block.
        /// </summary>
        /// <returns>Google Analytics JavaScript block.</returns>
        private string GetGoogleAnalyticsJavaScript()
        {
            if (_googleAnalyticsJavaScript.Length == 0)
            {
                ValidatePropertySettings();

                StringBuilder bldr = new StringBuilder();

                bldr.AppendLine(@"<script type=" + Quote + "text/javascript" + Quote + ">");
                bldr.AppendLine(@"    var _gaq = _gaq || [];");
                bldr.AppendLine(@"    _gaq.push(['_setAccount', '" + AccountId + "']);");

                if (DomainOption.Equals(DomainOptions.SingleDomainMultipleSubDomains))
                {
                    bldr.AppendLine(@"    _gaq.push(['_setDomainName', '" + DomainName + "']);");
                }
                else if (DomainOption.Equals(DomainOptions.MultipleTopLevelDomains))
                {
                    bldr.AppendLine(@"    _gaq.push(['_setDomainName', 'none']);");
                    bldr.AppendLine(@"    _gaq.push(['_setAllowLinker', true]);");
                }

                bldr.AppendLine(@"    _gaq.push(['_trackPageview']);");
                bldr.AppendLine(@"    (function() {");
                bldr.AppendLine(@"        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;");
                bldr.AppendLine(@"        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';");
                bldr.AppendLine(@"        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);");
                bldr.AppendLine(@"    })();");
                bldr.AppendLine(@"</script>");

                lock (_lockObject) { _googleAnalyticsJavaScript = bldr.ToString(); }
            }

            return(_googleAnalyticsJavaScript);
        }
Пример #2
0
        /// <summary>
        /// Validates control's property settings to ensure proper configuration.
        /// </summary>
        private void ValidatePropertySettings()
        {
            if (AccountId.Length == 0)
            {
                throw new ArgumentException(Exceptions.GoogleAnalytics_AccountIdNullOrEmpty);
            }

            if (!DomainOptions.ValidOptions.Contains(DomainOption))
            {
                throw new ArgumentException(Exceptions.GoogleAnalytics_DomainOptionInvalid);
            }

            if (DomainOption.Equals(DomainOptions.SingleDomainMultipleSubDomains))
            {
                if (DomainName.Length == 0)
                {
                    throw new ArgumentException(Exceptions.GoogleAnalytics_DomainNameMissing);
                }
            }
        }