/// <summary> /// Gets the value as elastic searchs json format for flags. (OR|AND|PREFIX) /// </summary> /// <param name="instance">Enum instance to format.</param> /// <returns>Value in elastic search json format.</returns> internal static string AsJsonValue(this SimpleQuerystringOperators instance) { if (instance == SimpleQuerystringOperators.All) { return(typeof(SimpleQuerystringOperators) .GetField(nameof(SimpleQuerystringOperators.All)) .GetCustomAttribute <EnumMemberAttribute>()?.Value ?? nameof(SimpleQuerystringOperators.All)); } return(string.Join("|", Enum.GetValues(typeof(SimpleQuerystringOperators)) .Cast <SimpleQuerystringOperators>() .Where(x => instance.HasFlag(x) && Convert.ToInt32(x) > 0) .DefaultIfEmpty() .Select(f => typeof(SimpleQuerystringOperators).GetField(f.ToString()).GetCustomAttribute <EnumMemberAttribute>()?.Value ?? f.ToString()))); }
public void AsJsonValue_Returns_Values() { SimpleQuerystringOperators value = SimpleQuerystringOperators.Not | SimpleQuerystringOperators.Or | SimpleQuerystringOperators.Phrase; Assert.Equal("NOT|OR|PHRASE", value.AsJsonValue()); }
public MatchSimpleQueryString(string query, List <string> fields, Operator @operator, SimpleQuerystringOperators flags = SimpleQuerystringOperators.All, string analyzer = null) { SimpleQueryString = new SimpleQueryStringInternal { Query = query, DefaultOperator = @operator.ToString().ToLower(), Fields = fields, Analyzer = analyzer, Flags = flags.AsJsonValue() }; }