public ISearchModifier GetSearchModifier(string modifier) { int splitIndex = modifier.IndexOf(':'); string name = modifier.Substring(0, splitIndex).Trim(); string value = modifier.Substring(splitIndex + 1, modifier.Length - splitIndex - 1).Trim(); bool invert = name.Length > 0 ? name[0] == '-' : false; if (name.StartsWith("-")) { name = name.Substring(1, name.Length - 1); } // Trim outer quotes from the value. if (value.Length > 1 && value.First() == '"' && value.Last() == '"') { value = value.Trim('"'); } ISearchModifier searchModifier = GetSearchModifier(name, value); if (searchModifier != null) { searchModifier.Invert = invert; } return(searchModifier); }
public ISearchModifier GetSearchModifier(string name, string value) { ISearchModifier modifier = modifiers.GetOrDefault(name.ToLowerInvariant())?.Invoke(); if (modifier != null) { modifier.Name = name; modifier.Value = value; } return(modifier); }