Beispiel #1
0
 public static IEnumerable<TrackQuery> BuildQuerySet(string queryString)
 {
     var matches = TrackQuery.FullQueryRegex.Matches(queryString);
     foreach(var match in matches.Cast<Match>())
     {
         TrackQueryCombinator combinator = TrackQueryCombinator.NONE;
         if (match.Value.StartsWith("&&")) combinator = TrackQueryCombinator.AND;
         if (match.Value.StartsWith("||")) combinator = TrackQueryCombinator.OR;
         string command = TrackQuery.QueryCommandRegex.Match(match.Value)?.Groups[1]?.Value;
         if (command == null) yield break;
         string parameter = TrackQuery.QueryParamRegex.Match(match.Value)?.Groups[1]?.Value ?? "";
         yield return new TrackQuery(combinator, command, parameter);
     }
 }
Beispiel #2
0
 public TrackQuery(TrackQueryCombinator combinator, string command, string parameter)
 {
     this.Combinator = combinator;
     this.Predicate = command;
     this.Parameter = parameter;
 }