コード例 #1
0
        public void Update(TablaturePlaylist playlist)
        {
            using (var cmd = new SQLiteCommand(_databaseHelper.GetConnection()))
            {
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = string.Format(@"INSERT OR REPLACE INTO {0} (id, name, created) VALUES (@id, @name, @created)", TabsterDatabaseHelper.TablePlaylists);
                cmd.Parameters.Add(new SQLiteParameter("@id", playlist.Id));
                cmd.Parameters.Add(new SQLiteParameter("@name", playlist.Name));
                cmd.Parameters.Add(new SQLiteParameter("@created", TabsterDatabaseHelper.GetUnixTimestamp(playlist.Created.Value)));
                cmd.ExecuteNonQuery();
            }

            playlist.Id = _databaseHelper.GetConnection().LastInsertRowId;

            RemovePlaylistItems(playlist);

            foreach (var item in playlist)
            {
                using (var cmd = new SQLiteCommand(_databaseHelper.GetConnection()))
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = string.Format(@"INSERT INTO {0} (filename, playlist_id) VALUES (@filename, @playlist_id)", TabsterDatabaseHelper.TablePlaylistItems);
                    cmd.Parameters.Add(new SQLiteParameter("@filename", item.FileInfo.FullName));
                    cmd.Parameters.Add(new SQLiteParameter("@playlist_id", playlist.Id));
                    cmd.ExecuteNonQuery();
                }
            }

            _playlists.Add(playlist);
        }
コード例 #2
0
        public void Load()
        {
            _playlists.Clear();

            using (var cmd = new SQLiteCommand(string.Format("SELECT * FROM {0}", TabsterDatabaseHelper.TablePlaylists), _databaseHelper.GetConnection()))
            {
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var id       = long.Parse(reader["id"].ToString());
                        var name     = reader["name"].ToString();
                        var created  = reader["created"].ToString();
                        var playlist = new TablaturePlaylist(name)
                        {
                            Id = id, Created = TabsterDatabaseHelper.UnixTimestampToDateTime(int.Parse(created))
                        };
                        _playlists.Add(playlist);
                    }
                }
            }

            foreach (var playlist in _playlists)
            {
                using (var cmd = new SQLiteCommand(string.Format("SELECT * FROM {0} WHERE playlist_id=@playlist_id", TabsterDatabaseHelper.TablePlaylistItems), _databaseHelper.GetConnection()))
                {
                    cmd.Parameters.Add(new SQLiteParameter("@playlist_id", playlist.Id));

                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var id       = long.Parse(reader["id"].ToString());
                            var filename = reader["filename"].ToString();

                            var file = _fileProcessor.Load(filename);

                            if (file != null)
                            {
                                var fileInfo = new FileInfo(filename);
                                var item     = new TablaturePlaylistItem(file, fileInfo);
                                playlist.Add(item);
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
 public RecentFilesManager(TabsterDatabaseHelper databaseHelper, TabsterFileProcessor <TablatureFile> fileProcessor, int maxItems)
 {
     _databaseHelper = databaseHelper;
     _fileProcessor  = fileProcessor;
     _maxItems       = maxItems;
 }
コード例 #4
0
ファイル: PlaylistManager.cs プロジェクト: GetTabster/Tabster
 public PlaylistManager(TabsterDatabaseHelper databaseHelper, TabsterFileProcessor<TablatureFile> fileProcessor)
 {
     _databaseHelper = databaseHelper;
     _fileProcessor = fileProcessor;
 }
コード例 #5
0
 public RecentFilesManager(TabsterDatabaseHelper databaseHelper, TabsterFileProcessor<TablatureFile> fileProcessor, int maxItems)
 {
     _databaseHelper = databaseHelper;
     _fileProcessor = fileProcessor;
     _maxItems = maxItems;
 }
コード例 #6
0
 public PlaylistManager(TabsterDatabaseHelper databaseHelper, TabsterFileProcessor <TablatureFile> fileProcessor)
 {
     _databaseHelper = databaseHelper;
     _fileProcessor  = fileProcessor;
 }
コード例 #7
0
 public LibraryManager(TabsterDatabaseHelper databaseHelper, TabsterFileProcessor <TablatureFile> fileProcessor,
                       string tablatureDirectory) : base(tablatureDirectory, fileProcessor)
 {
     _databaseHelper = databaseHelper;
     _fileProcessor  = fileProcessor;
 }