Example #1
0
        //This is kinda dirty.  Be interesting to time delete / recreate all versus, seek - update or insert.
        //TODO:  Wrapp a stopwatch around this
        public void SaveLibrary(NavigatableCollection <Track> library)
        {
            //Delete the library first
            DeleteLibrary();

            //TODO:  Repopulate it
            DataTable dt = new DataTable();

            using (var objConn = new SqlCeConnection(ConnectionString))
            {
                objConn.Open();
                var adapter           = new SqlCeDataAdapter("Select Id, TrackName, TrackPathName, Artist, TrackNumber, Album From Track", objConn);
                var objCommandBuilder = new SqlCeCommandBuilder(adapter);
                adapter.Fill(dt);

                foreach (var track in library)
                {
                    dt.Rows.Add(new object[] { track.Id, track.TrackName, track.TrackPathName, track.Artist, null, track.Album }); //We're not currently parsing the track number
                }

                adapter.Update(dt);

                objConn.Close();
            }
        }
Example #2
0
        public NavigatableCollection <Track> FetchLibrary()
        {
            var ret = new  NavigatableCollection <Track>();

            using (var objConn = new SqlCeConnection(ConnectionString))
            {
                var command = new SqlCeCommand("Select Id, TrackName, TrackPathName, Artist, TrackNumber, Album From Track Order By Artist, Album, TrackName", objConn);
                objConn.Open();
                using (var reader = command.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    ret = ReaderToTrackCollection(reader);
                }
            }

            return(ret);
        }
Example #3
0
        private NavigatableCollection <Track> ReaderToTrackCollection(SqlCeDataReader reader)
        {
            var coll = new NavigatableCollection <Track>();

            while (reader.Read())
            {
                var track = new Track
                {
                    Id            = (Guid)reader[0],
                    TrackName     = reader[1] == DBNull.Value ? "" : (string)reader[1],
                    TrackPathName = reader[2] == DBNull.Value ? "" : (string)reader[2],
                    Artist        = reader[3] == DBNull.Value ? "" : (string)reader[3],
                    Album         = reader[5] == DBNull.Value ? "" : (string)reader[5],
                };

                coll.Add(track);
            }
            return(coll);
        }