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