public bool TryParse(string filter, out IFilterParserResult result) { var groups = new List <IFilterParserResultGroup>(); while (!string.IsNullOrEmpty(filter)) { var success = default(bool); foreach (var provider in this.Providers) { var group = default(IFilterParserResultGroup); if (provider.TryParse(ref filter, out group)) { groups.Add(group); success = true; break; } } if (!success) { break; } } result = new FilterParserResult(groups); return(string.IsNullOrEmpty(filter)); }
public AddSearchToPlaylist(IDatabase database, IFilterParserResult filter, ISortParserResult sort, int limit) { this.Database = database; this.Filter = filter; this.Sort = sort; this.Limit = limit; }
public virtual bool Equals(IFilterParserResult other) { if (other == null) { return(false); } if (object.ReferenceEquals(this, other)) { return(true); } if (!Enumerable.SequenceEqual(this.Groups, other.Groups)) { return(false); } return(true); }
public bool TryParse(string filter, out IFilterParserResult result) { result = this.Store.GetOrAdd(filter, () => { var success = default(bool); var groups = new List <IFilterParserResultGroup>(); while (!string.IsNullOrWhiteSpace(filter)) { foreach (var provider in this.Providers.Value) { var currentGroups = default(IEnumerable <IFilterParserResultGroup>); if (provider.TryParse(ref filter, out currentGroups)) { groups.AddRange(currentGroups); success = true; break; } } if (!success) { break; } } if (!success && !string.IsNullOrWhiteSpace(filter)) { Logger.Write(this, LogLevel.Warn, "Failed to parse filter: {0}", filter.Trim()); } if (groups.Any()) { return(new FilterParserResult(groups)); } else { return(null); } }); return(result != null); }
public GetLibraryHierarchyMetaData(IDatabase database, IFilterParserResult filter) { this.Database = database; this.Filter = filter; }
public LibraryHierarchyFilterBuilder(IDatabase database, IFilterParserResult filter, LibraryHierarchyFilterSource source) { this.Database = database; this.Filter = filter; this.Source = source; }
public GetLibraryItems(IDatabase database, IFilterParserResult filter) { this.Database = database; this.Filter = filter; }
public AddLibraryHierarchyNodeToPlaylist(IDatabase database, IFilterParserResult filter, ISortParserResult sort) { this.Database = database; this.Filter = filter; this.Sort = sort; }
public AddLibraryHierarchyNodeToPlaylist(IDatabase database, IFilterParserResult filter) { this.Database = database; this.Filter = filter; }
public LibraryFilterBuilder(IDatabase database, IFilterParserResult filter) { this.Database = database; this.Filter = filter; }