コード例 #1
0
 /// <summary>
 ///     Configurable ctor for <see cref="HttpContentLoader" />.
 /// </summary>
 /// <param name="config">
 ///     <list type="bullet">
 ///         <listheader>
 ///             <description>Supported <see cref="BVClientConfig" /> properties</description>
 ///         </listheader>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.CONNECT_TIMEOUT" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.SOCKET_TIMEOUT" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.PROXY_PORT" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.PROXY_HOST" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.CHARSET" />
 ///             </description>
 ///         </item>
 ///     </list>
 /// </param>
 /// <param name="userAgent">
 ///     Browser and system details to be forwarded as the <see cref="HttpRequestHeader.UserAgent" />
 ///     when loading content via HTTP.
 /// </param>
 public HttpContentLoader(BVConfiguration config, string userAgent)
 {
     ConnectionTimeout = int.Parse(config.getProperty(BVClientConfig.CONNECT_TIMEOUT));
     SocketTimeout     = int.Parse(config.getProperty(BVClientConfig.SOCKET_TIMEOUT));
     ProxyPort         = int.Parse(config.getProperty(BVClientConfig.PROXY_PORT));
     ProxyHost         = config.getProperty(BVClientConfig.PROXY_HOST);
     Encoding          = EncodingParser.GetEncoding(config.getProperty(BVClientConfig.CHARSET));
     UserAgent         = userAgent;
 }
コード例 #2
0
        private Uri fileUri(String path)
        {
            String fileRoot = bvConfiguration.getProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT);

            if (String.IsNullOrEmpty(fileRoot))
            {
                _logger.Error(BVMessageUtil.getMessage("ERR0010"));
                throw new BVSdkException("ERR0010");
            }

            String fullFilePath = Path.GetFullPath(fileRoot + "/" + path);

            Uri fileUri = new Uri(fullFilePath);

            return(fileUri);
        }
コード例 #3
0
        /// <summary>
        /// Method to validate bvConfiguration & bvParameters.
        /// </summary>
        /// <param name="bvConfiguration">The BVConfiguration Object to validate</param>
        /// <param name="bvParams">The BVParameters Object to validate</param>
        /// <returns>Errors as String if Invalid attributes are found</returns>
        public String validate(BVConfiguration bvConfiguration, BVParameters bvParams)
        {
            if (bvConfiguration == null)
            {
                errorMessages.Append(BVMessageUtil.getMessage("ERR0007"));
                _logger.Error(BVMessageUtil.getMessage("ERR0007"));
                return errorMessages.ToString();
            }

            if (bvParams == null)
            {
                errorMessages.Append(BVMessageUtil.getMessage("ERR0011"));
                _logger.Error(BVMessageUtil.getMessage("ERR0011"));
                return errorMessages.ToString();
            }

            Boolean loadSeoFilesLocally = Boolean.Parse(bvConfiguration.getProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY));
            if (loadSeoFilesLocally)
            {
                String localSeoFileRoot = bvConfiguration.getProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT);
                if (String.IsNullOrEmpty(localSeoFileRoot))
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0010"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0010"));
                }
            }
            else
            {
                String cloudKey = bvConfiguration.getProperty(BVClientConfig.CLOUD_KEY);
                if (String.IsNullOrEmpty(cloudKey))
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0020"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0020"));
                }
            }

            String rootFolder = bvConfiguration.getProperty(BVClientConfig.BV_ROOT_FOLDER);
            if (String.IsNullOrEmpty(rootFolder))
            {
                errorMessages.Append(BVMessageUtil.getMessage("ERR0021"));
                _logger.Error(BVMessageUtil.getMessage("ERR0021"));
            }

            Uri uri = null;
            if (bvParams.BaseURI != null)
            {
                try
                {
                    uri = new Uri(bvParams.BaseURI);
                }
                catch (UriFormatException e)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0023"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0023"),e);
                }
            }

            if (bvParams.PageURI != null)
            {
                try
                {
                    uri = new Uri(bvParams.PageURI);
                }
                catch (UriFormatException e)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0022"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0022"), e);
                }
            }

            if (String.IsNullOrEmpty(bvParams.PageURI) || !bvParams.PageURI.Contains("bvpage"))
            {
                if (String.IsNullOrEmpty(bvParams.SubjectId))
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0014"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0014"));
                }

                if (bvParams.SubjectType == null)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0016"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0016"));
                }

                if (bvParams.ContentType == null)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0015"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0015"));
                }
            }


            if (errorMessages.Length > 0)
            {
                _logger.Error("There is an error : " + errorMessages.ToString());
                return errorMessages.ToString();
            }

            return null;
        }
コード例 #4
0
 /// <summary>
 ///     Implementation to check if sdk is enabled/disabled.
 ///     The settings are based on the configurations from BVConfiguration and BVParameters.
 /// </summary>
 /// <returns>A Boolean value, true if sdk is enabled and false if it is not enabled</returns>
 public bool isSdkEnabled()
 {
     _sdkEnabled = bool.Parse(_bvConfiguration.getProperty(BVClientConfig.SEO_SDK_ENABLED));
     _sdkEnabled = _sdkEnabled || BVUtility.isRevealDebugEnabled(_bvParameters);
     return(_sdkEnabled);
 }
コード例 #5
0
        /// <summary>
        /// Returns the footer based on the configuration that is set.
        /// </summary>
        /// <param name="accessMethod">Parameter to provide the BV SEO Content Access Method</param>
        /// <returns>Footer Content as a String</returns>
        public String displayFooter(String accessMethod)
        {
            string FooterTemplate = Resources.footer.ToString();

            if (!string.IsNullOrEmpty(FooterTemplate))
            {
                VelocityContext context = new VelocityContext();

                if (BVUtility.isRevealDebugEnabled(_bvParameters))
                {
                    Hashtable revealMap = null;
                    revealMap = new Hashtable();

                    if (
                        _bvParameters != null
                        &&
                        !_bvParameters.SubjectType.getCS2013Text().Equals(
                            BVSubjectType.SELLER,
                            StringComparison.OrdinalIgnoreCase
                            )
                        )
                    {
                        foreach (string configName in BVCoreConfig.values())
                        {
                            revealMap.Add(configName, _bvConfiguration.getProperty(configName));
                        }
                    }

                    foreach (string configName in BVClientConfig.values())
                    {
                        revealMap.Add(configName, _bvConfiguration.getProperty(configName));
                    }
                    context.Put("revealMap", revealMap);
                }

                string assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();

                String methodType = Boolean.Parse(
                    _bvConfiguration.getProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY)) ? "LOCAL" : "CLOUD";
                context.Put("sdk_enabled", _bvConfiguration.getProperty(BVClientConfig.SEO_SDK_ENABLED));
                context.Put("_bvParameters", _bvParameters);
                context.Put("methodType", methodType);
                context.Put("executionTime", executionTime);
                context.Put("accessMethod", accessMethod);
                context.Put("version", assemblyVersion);

                String message = null;
                if (messageList != null && messageList.Count > 0)
                {
                    message = "";
                    foreach (String messageStr in messageList)
                    {
                        message += messageStr;
                    }
                }
                context.Put("message", message);

                String  url          = null;
                Boolean loadFromFile = Boolean.Parse(_bvConfiguration.getProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY));
                if (!loadFromFile && _bvSeoSdkUrl != null)
                {
                    url = _bvSeoSdkUrl.seoContentUri().ToString();
                }
                context.Put("url", url);

                StringWriter writer = new StringWriter();
                _velocityEngine.Evaluate(context, writer, "footer", FooterTemplate);

                return(writer.ToString());
            }
            else
            {
                return(String.Empty);
            }
        }
コード例 #6
0
 /// <summary>
 ///     Configurable ctor for <see cref="FileContentLoader" />.
 /// </summary>
 /// <param name="config">
 ///     <list type="bullet">
 ///         <listheader>
 ///             <description>Supported <see cref="BVClientConfig" /> properties</description>
 ///         </listheader>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.CHARSET" />
 ///             </description>
 ///         </item>
 ///     </list>
 /// </param>
 public FileContentLoader(BVConfiguration config)
 {
     Encoding = EncodingParser.GetEncoding(config.getProperty(BVClientConfig.CHARSET));
 }
コード例 #7
0
        /// <summary>
        /// Method to validate bvConfiguration & bvParameters.
        /// </summary>
        /// <param name="bvConfiguration">The BVConfiguration Object to validate</param>
        /// <param name="bvParams">The BVParameters Object to validate</param>
        /// <returns>Errors as String if Invalid attributes are found</returns>
        public String validate(BVConfiguration bvConfiguration, BVParameters bvParams)
        {
            if (bvConfiguration == null)
            {
                errorMessages.Append(BVMessageUtil.getMessage("ERR0007"));
                _logger.Error(BVMessageUtil.getMessage("ERR0007"));
                return(errorMessages.ToString());
            }

            if (bvParams == null)
            {
                errorMessages.Append(BVMessageUtil.getMessage("ERR0011"));
                _logger.Error(BVMessageUtil.getMessage("ERR0011"));
                return(errorMessages.ToString());
            }

            Boolean loadSeoFilesLocally = Boolean.Parse(bvConfiguration.getProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY));

            if (loadSeoFilesLocally)
            {
                String localSeoFileRoot = bvConfiguration.getProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT);
                if (String.IsNullOrEmpty(localSeoFileRoot))
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0010"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0010"));
                }
            }
            else
            {
                String cloudKey = bvConfiguration.getProperty(BVClientConfig.CLOUD_KEY);
                if (String.IsNullOrEmpty(cloudKey))
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0020"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0020"));
                }
            }

            String rootFolder = bvConfiguration.getProperty(BVClientConfig.BV_ROOT_FOLDER);

            if (String.IsNullOrEmpty(rootFolder))
            {
                errorMessages.Append(BVMessageUtil.getMessage("ERR0021"));
                _logger.Error(BVMessageUtil.getMessage("ERR0021"));
            }

            Uri uri = null;

            if (bvParams.BaseURI != null)
            {
                try
                {
                    uri = new Uri(bvParams.BaseURI);
                }
                catch (UriFormatException e)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0023"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0023"), e);
                }
            }

            if (bvParams.PageURI != null)
            {
                try
                {
                    uri = new Uri(bvParams.PageURI);
                }
                catch (UriFormatException e)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0022"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0022"), e);
                }
            }

            if (String.IsNullOrEmpty(bvParams.PageURI) || !bvParams.PageURI.Contains("bvpage"))
            {
                if (String.IsNullOrEmpty(bvParams.SubjectId))
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0014"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0014"));
                }

                if (bvParams.SubjectType == null)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0016"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0016"));
                }

                if (bvParams.ContentType == null)
                {
                    errorMessages.Append(BVMessageUtil.getMessage("ERR0015"));
                    _logger.Error(BVMessageUtil.getMessage("ERR0015"));
                }
            }


            if (errorMessages.Length > 0)
            {
                _logger.Error("There is an error : " + errorMessages.ToString());
                return(errorMessages.ToString());
            }

            return(null);
        }
コード例 #8
0
 /// <summary>
 ///     Configurable ctor for <see cref="FileContentLoader" />.
 /// </summary>
 /// <param name="config">
 ///     <list type="bullet">
 ///         <listheader>
 ///             <description>Supported <see cref="BVClientConfig" /> properties</description>
 ///         </listheader>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.CHARSET" />
 ///             </description>
 ///         </item>
 ///     </list>
 /// </param>
 public FileContentLoader(BVConfiguration config)
 {
     Encoding = EncodingParser.GetEncoding(config.getProperty(BVClientConfig.CHARSET));
 }
コード例 #9
0
 /// <summary>
 ///     Configurable ctor for <see cref="HttpContentLoader" />.
 /// </summary>
 /// <param name="config">
 ///     <list type="bullet">
 ///         <listheader>
 ///             <description>Supported <see cref="BVClientConfig" /> properties</description>
 ///         </listheader>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.CONNECT_TIMEOUT" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.SOCKET_TIMEOUT" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.PROXY_PORT" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.PROXY_HOST" />
 ///             </description>
 ///         </item>
 ///         <item>
 ///             <description>
 ///                 <see cref="BVClientConfig.CHARSET" />
 ///             </description>
 ///         </item>
 ///     </list>
 /// </param>
 /// <param name="userAgent">
 ///     Browser and system details to be forwarded as the <see cref="HttpRequestHeader.UserAgent" />
 ///     when loading content via HTTP.
 /// </param>
 public HttpContentLoader(BVConfiguration config, string userAgent)
 {
     ConnectionTimeout = int.Parse(config.getProperty(BVClientConfig.CONNECT_TIMEOUT));
     SocketTimeout = int.Parse(config.getProperty(BVClientConfig.SOCKET_TIMEOUT));
     ProxyPort = int.Parse(config.getProperty(BVClientConfig.PROXY_PORT));
     ProxyHost = config.getProperty(BVClientConfig.PROXY_HOST);
     Encoding = EncodingParser.GetEncoding(config.getProperty(BVClientConfig.CHARSET));
     UserAgent = userAgent;
 }