public AddSearchToPlaylist(IDatabase database, IFilterParserResult filter, ISortParserResult sort, int limit) { this.Database = database; this.Filter = filter; this.Sort = sort; this.Limit = limit; }
public bool TryParse(string sort, out ISortParserResult result) { var expressions = new List <ISortParserResultExpression>(); if (!string.IsNullOrEmpty(sort)) { var lines = sort.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { var success = default(bool); foreach (var provider in this.Providers) { var expression = default(ISortParserResultExpression); if (provider.TryParse(line, out expression)) { expressions.Add(expression); success = true; break; } } if (!success) { result = default(ISortParserResult); return(false); } } } result = new SortParserResult(expressions); return(true); }
public virtual bool Equals(ISortParserResult other) { if (other == null) { return(false); } if (object.ReferenceEquals(this, other)) { return(true); } if (!Enumerable.SequenceEqual(this.Expressions, other.Expressions)) { return(false); } return(true); }
public bool TryParse(string sort, out ISortParserResult result) { result = this.Store.GetOrAdd(sort, () => { if (string.IsNullOrEmpty(sort)) { return(null); } var lines = sort.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); var success = default(bool); var expressions = new List <ISortParserResultExpression>(); foreach (var line in lines) { foreach (var provider in this.Providers.Value) { var expression = default(ISortParserResultExpression); if (provider.TryParse(line, out expression)) { expressions.Add(expression); success = true; break; } } if (!success) { Logger.Write(this, LogLevel.Warn, "Failed to parse sort: {0}", line.Trim()); } } if (expressions.Any()) { return(new SortParserResult(expressions)); } else { return(null); } }); return(result != null); }
public PlaylistSortBuilder(IDatabase database, ISortParserResult sort) { this.Database = database; this.Sort = sort; }
public AddLibraryHierarchyNodeToPlaylist(IDatabase database, IFilterParserResult filter, ISortParserResult sort) { this.Database = database; this.Filter = filter; this.Sort = sort; }