public static CachedList <DatabaseTrackInfo> CreateFromSourceModel(DatabaseTrackListModel model) { CachedList <DatabaseTrackInfo> list = new CachedList <DatabaseTrackInfo> (DatabaseTrackInfo.Provider); HyenaSqliteCommand model_cache_command = new HyenaSqliteCommand(String.Format(@" INSERT INTO CoreCache (ModelID, ItemID) SELECT ?, CoreTracks.TrackID {0}", model.UnfilteredQuery )); lock (model) { ServiceManager.DbConnection.Execute(model_cache_command, list.CacheId); } list.cache.UpdateAggregates(); return(list); }
public static CachedList <DatabaseTrackInfo> CreateFromModelAndSelection(DatabaseTrackListModel model, Selection selection) { CachedList <DatabaseTrackInfo> list = new CachedList <DatabaseTrackInfo> (DatabaseTrackInfo.Provider); HyenaSqliteCommand add_range_command = new HyenaSqliteCommand(String.Format(@" INSERT INTO CoreCache (ModelID, ItemID) SELECT ?, {0}", model.TrackIdsSql )); lock (model) { foreach (RangeCollection.Range range in selection.Ranges) { ServiceManager.DbConnection.Execute(add_range_command, list.CacheId, model.CacheId, range.Start, range.Count); } } list.cache.UpdateAggregates(); return(list); }