/// <summary> /// Initializes a new instance of the <see cref="LanguageDrop" /> class /// </summary> /// <param name="portalLiquidContext">Portal Liquid Context</param> /// <param name="websiteLanguage">Language for Drop</param> public LanguageDrop(IPortalLiquidContext portalLiquidContext, IWebsiteLanguage websiteLanguage) : base(portalLiquidContext) { this._language = websiteLanguage; // If for whatever reason ContextLanguageInfo or websiteLanguage is null, leave the url as empty string. // (This only happens if we have updated CRM data with multi-language template, but no WebsiteLanguage entities, which should never be the case). var contextLanguageInfo = portalLiquidContext.ContextLanguageInfo; if (contextLanguageInfo != null && websiteLanguage != null) { _url = contextLanguageInfo.FormatUrlWithLanguage(true, websiteLanguage.Code, null, true); } }
public CrmEntityQuery(string queryText, int pageNumber, int pageSize, IEnumerable <string> logicalNames, IWebsiteLanguage language, bool multiLanguageEnabled, string filter = null, IEnumerable <FacetConstraints> facetConstraints = null, string sortingOptions = null, string queryTerm = null) { if (queryText == null) { throw new ArgumentNullException("queryText"); } QueryText = queryText; PageNumber = pageNumber; PageSize = pageSize; Filter = filter; ContextLanguage = language; FacetConstraints = facetConstraints == null?Enumerable.Empty <FacetConstraints>() : facetConstraints; SortingOption = sortingOptions == null ? string.Empty : sortingOptions; MultiLanguageEnabled = multiLanguageEnabled; QueryTerm = queryTerm ?? string.Empty; LogicalNames = logicalNames == null?Enumerable.Empty <string>() : logicalNames.ToArray(); }
/// <summary> /// Gets a language-specific Lucene <see cref="Analyzer"/> for the current user context /// </summary> /// <param name="index">Current search index</param> /// <param name="isMultiLanguageEnabled">flag for multilanguage enabled portal</param> /// <param name="contextLanguage">website language</param> /// <returns>Language-specific analyzer if Multi Language is enabled. Default index analyzer otherwise</returns> public static Analyzer GetQuerySpecificAnalyzer(this ICrmEntityIndex index, bool isMultiLanguageEnabled, IWebsiteLanguage contextLanguage) { if (!isMultiLanguageEnabled || contextLanguage == null) { return(index.Analyzer); } return(CreateSpecificAnalyzer(contextLanguage.Lcid, index.Version)); }
public CrmEntityQuery(string queryText, int pageNumber, int pageSize, IWebsiteLanguage language, bool multiLanguageEnabled, string filter = null) : this(queryText, pageNumber, pageSize, Enumerable.Empty <string>(), language, multiLanguageEnabled, filter) { }
public ScopedEntityQuery(IEnumerable <string> scopes, string queryText, int pageNumber, int pageSize, IWebsiteLanguage language, bool multiLanguageEnabled, string filter = null) : base(queryText, pageNumber, pageSize, language, multiLanguageEnabled, filter) { if (scopes == null) { throw new ArgumentNullException("scopes"); } Scopes = scopes.ToArray(); }