protected override void RemoveTrackRange(DatabaseTrackListModel model, RangeCollection.Range range) { ServiceManager.DbConnection.Execute( String.Format(remove_range_sql, model.TrackIdsSql), DateTime.Now, model.CacheId, range.Start, range.End - range.Start + 1, model.CacheId, range.Start, range.End - range.Start + 1 ); }
protected override void RemoveTrackRange(DatabaseTrackListModel model, RangeCollection.Range range) { base.RemoveTrackRange(model, range); model.Selection.UnselectRange(range.Start, range.End); int index = TrackModel.IndexOf(current_track); if (range.Start <= index && index <= range.End) { SetCurrentTrack(range.End + 1 < Count ? TrackModel[range.End + 1] as DatabaseTrackInfo : null); } }
protected override void AddTrackRange(DatabaseTrackListModel from, RangeCollection.Range range) { last_add_range_command = (!from.CachesJoinTableEntries) ? add_track_range_command : from == last_add_range_from_model ? last_add_range_command : new HyenaSqliteCommand(String.Format(add_track_range_from_joined_model_sql, from.JoinTable, from.JoinPrimaryKey)); long first_order_id = ServiceManager.DbConnection.Query <long> ("SELECT OrderID FROM CoreCache WHERE ModelID = ? LIMIT 1 OFFSET ?", from.CacheId, range.Start); ServiceManager.DbConnection.Execute(last_add_range_command, DbId, MaxViewOrder - first_order_id, from.CacheId, range.Start, range.Count); last_add_range_from_model = from; }
void CheckOffsetAndRealized(GeneratorPosition position, int count) { if (position.Offset != 0) { throw new ArgumentException("position.Offset must be zero as the position must refer to a realized element"); } int index = IndexFromGeneratorPosition(position); int rangeIndex = RealizedElements.FindRangeIndexForValue(index); RangeCollection.Range range = RealizedElements.Ranges[rangeIndex]; if (index < range.Start || (index + count) > range.Start + range.Count) { throw new InvalidOperationException("Only items which have been Realized can be removed"); } }
protected virtual void RateTrackRange(DatabaseTrackListModel model, RangeCollection.Range range, int rating) { ServiceManager.DbConnection.Execute(RateTrackRangeCommand, rating, DateTime.Now, range.Start, range.End - range.Start + 1); }
protected virtual void AddTrackRange(DatabaseTrackListModel model, RangeCollection.Range range) { Log.ErrorFormat("AddTrackRange not implemented by {0}", this); }
protected override void RemoveTrackRange(DatabaseTrackListModel from, RangeCollection.Range range) { ServiceManager.DbConnection.Execute(remove_track_range_command, DbId, from.CacheId, range.Start, range.Count); }
public void RecordShuffleModifications(DatabaseTrackListModel model, RangeCollection.Range range, ShuffleModificationType type) { ServiceManager.DbConnection.Execute(String.Format("{0} SELECT ?, ?, ?, {1}", modify_sql, model.TrackIdsSql), DbId, DateTime.Now, (int)type, model.CacheId, range.Start, range.Count); }
public void RecordInsertions(DatabaseTrackListModel model, RangeCollection.Range range) { RecordShuffleModifications(model, range, ShuffleModificationType.Insertion); }