Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }