/// <summary> /// Appends the T-SQL equivalent of the specified predicate tokens. /// </summary> /// <param name="transactionSqlBuilder">StringBuilder object to append to.</param> /// <param name="predicateToken">Predicate token.</param> private static void AppendCriterionTSql(StringBuilder transactionSqlBuilder, PredicateToken predicateToken) { transactionSqlBuilder.Append(string.Format( CultureInfo.InvariantCulture, SearchConstants.TSQL_PREDICATE_CRITERIA, predicateToken.PredicateName)); }
/// <summary> /// Fetches predicate tokens. /// </summary> /// <param name="context"><see cref="ZentityContext" /> instance to fetch data with.</param> /// <returns>Predicate tokens</returns> private static IEnumerable <PredicateToken> FetchPredicateTokens(ZentityContext context) { XDocument mappings = Utility.ReadXmlConfigurationFile(Resources.SEARCH_PREDICATETOKENS_FILENAME); IEnumerable <PredicateToken> xmlTokens; if (mappings == null) { xmlTokens = new PredicateToken[0]; } else { xmlTokens = mappings.Root .Elements(XName.Get(SearchConstants.XML_TOKEN, SearchConstants.XMLNS_NAMESPACE)) .Select(token => new PredicateToken { Token = token.Attribute(SearchConstants.XML_NAME).Value, PredicateName = token.Attribute(SearchConstants.XML_PREDICATE).Value, ReverseRelation = Convert.ToBoolean( token.Attribute(SearchConstants.XML_REVERSERELATION).Value, CultureInfo.CurrentCulture) }); } IEnumerable <PredicateToken> databaseTokens = context.Predicates .Select(predicate => new PredicateToken { Token = predicate.Name, PredicateName = predicate.Name, ReverseRelation = false }); xmlTokens = xmlTokens.Concat(databaseTokens); IEnumerable <PredicateToken> excludedPredicates = FetchExcludedPredicateTokens(); xmlTokens = xmlTokens .Where(predicateToken => !excludedPredicates .Select(excludedToken => excludedToken.PredicateName.ToLower()) .Contains(predicateToken.PredicateName.ToLower())); return(xmlTokens); }
/// <summary> /// Fetches excluded predicate tokens. /// </summary> /// <returns>Excluded predicate tokens.</returns> private static IEnumerable <PredicateToken> FetchExcludedPredicateTokens() { XDocument mappings = Utility.ReadXmlConfigurationFile(Resources.SEARCH_EXCLUDEDPREDICATES_FILENAME); IEnumerable <PredicateToken> xmlTokens; if (mappings == null) { xmlTokens = new PredicateToken[0]; } else { xmlTokens = mappings.Root .Elements(XName.Get(SearchConstants.XML_PREDICATE, SearchConstants.XMLNS_NAMESPACE)) .Select(token => new PredicateToken { Token = token.Attribute(SearchConstants.XML_NAME).Value, PredicateName = token.Attribute(SearchConstants.XML_NAME).Value, ReverseRelation = false }); } return(xmlTokens); }
/// <summary> /// Fetches the specified predicate token. /// </summary> /// <param name="token">Predicate token.</param> /// <returns>Predicate mapping for the specified token.</returns> public IEnumerable <PredicateToken> FetchPredicateToken(string token) { return(PredicateToken.FetchPredicateToken(token, context)); }