/// <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);
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        /// <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));
        }
Ejemplo n.º 4
0
 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)
 {
 }
Ejemplo n.º 5
0
        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();
        }