Changeset 173

Show
Ignore:
Timestamp:
03/09/07 07:07:11 (2 years ago)
Author:
mgeske2
Message:

Added functions to save and load a playlist from the bridge database.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • dmp/trunk/Bridge/Bridge.cs

    r171 r173  
    8585                                } 
    8686            } 
     87        } 
     88 
     89        public void addPlaylists(List<PlaylistBase> thePlaylists) 
     90        { 
     91            this.database.addPlaylists(thePlaylists); 
     92        } 
     93 
     94        public void addPlaylist(PlaylistBase thePlaylist) 
     95        { 
     96            this.database.addPlaylist(thePlaylist); 
     97        } 
     98 
     99        public PlaylistBase loadPlaylist(int thePlaylistId) 
     100        { 
     101            return this.database.loadPlaylist(thePlaylistId); 
    87102        } 
    88103 
  • dmp/trunk/daap-sharp/BridgeDatabase.cs

    r167 r173  
    104104                lastUpdated integer)"; 
    105105 
     106            IDbCommand playlistsTable = this.databaseConnection.CreateCommand(); 
     107            playlistsTable.CommandText = @"CREATE TABLE playlists ( 
     108                songId integer, 
     109                playlistId integer references songs(id), 
     110                playlistName text)"; 
     111 
    106112            this.databaseConnection.Open(); 
    107113            librariesTable.ExecuteNonQuery(); 
    108114            songsTable.ExecuteNonQuery(); 
     115            playlistsTable.ExecuteNonQuery(); 
    109116            this.databaseConnection.Close(); 
    110117 
     
    493500        } 
    494501 
    495         public void addPlaylists(List<PlaylistBase> thePlaylists, int libId) 
    496         { 
    497             throw new Exception("The method or operation is not implemented."); 
     502        public void addPlaylists(List<PlaylistBase> thePlaylists) 
     503        { 
     504            List<IDbCommand> commandList = new List<IDbCommand>(); 
     505            foreach (PlaylistBase thePlaylist in thePlaylists) 
     506            { 
     507                foreach (Int32 Song in thePlaylist.Songs) 
     508                { 
     509                    IDbCommand command = this.databaseConnection.CreateCommand(); 
     510                    command.CommandText = @"INSERT INTO playlists  
     511                                      (songId, playlistId, playlistName) values (?, ?, ?); 
     512                                      SELECT last_insert_rowid();"; 
     513                    IDataParameter songId = command.CreateParameter(); 
     514                    songId.Value = Song.ToString(); 
     515                    command.Parameters.Add(songId); 
     516                    IDataParameter playlistId = command.CreateParameter(); 
     517                    playlistId.Value = thePlaylist.Id.ToString(); 
     518                    command.Parameters.Add(playlistId); 
     519                    IDataParameter playlistName = command.CreateParameter(); 
     520                    playlistName.Value = thePlaylist.Name; 
     521                    command.Parameters.Add(playlistName); 
     522                    commandList.Add(command); 
     523                } 
     524            } 
     525            this.databaseConnection.Open(); 
     526            foreach (IDbCommand command in commandList) 
     527            { 
     528                command.ExecuteNonQuery(); 
     529            } 
     530            this.databaseConnection.Close(); 
     531        } 
     532 
     533        public PlaylistBase loadPlaylist(int thePlaylistId) 
     534        { 
     535            PlaylistBase thePlaylist = new PlaylistBase(thePlaylistId); 
     536            IDbCommand command = this.databaseConnection.CreateCommand(); 
     537            command.CommandText = @"SELECT songId FROM playlists WHERE playlistId=($1)"; 
     538            IDataParameter playlistId = command.CreateParameter(); 
     539            playlistId.ParameterName = "$1"; 
     540            playlistId.Value = thePlaylistId.ToString(); 
     541            command.Parameters.Add(playlistId); 
     542            this.databaseConnection.Open(); 
     543            SQLiteDataReader result = (SQLiteDataReader)command.ExecuteReader(); 
     544            while(result.Read()) 
     545            { 
     546                Int32 ret = result.GetInt32(0); 
     547                thePlaylist.AddTrack(ret); 
     548            } 
     549            this.databaseConnection.Close(); 
     550            return thePlaylist; 
     551        } 
     552 
     553        public void addPlaylist(PlaylistBase thePlaylist) 
     554        { 
     555            List<PlaylistBase> theList = new List<PlaylistBase>(); 
     556            theList.Add(thePlaylist); 
     557            addPlaylists(theList); 
    498558        } 
    499559