Ejemplo n.º 1
0
        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;
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 7
0
 public GetLibraryItems(IDatabase database, IFilterParserResult filter)
 {
     this.Database = database;
     this.Filter   = filter;
 }
Ejemplo n.º 8
0
 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;
 }