Exemplo n.º 1
0
        /// <summary>
        /// This method will insert every missing column for each table into the database. Will only be called if HasallColumns() returns false. This means the user has an outdated .db file
        /// </summary>
        public static void InsertNewColumns()
        {
            using (Youtube2Mp3DatabaseEntities db = new Youtube2Mp3DatabaseEntities())
            {
                //every column that SHOULD exist
                var downloadHistoryNames = typeof(DownloadHistory).GetProperties().Select(property => property.Name).ToArray();
                var settingNames         = typeof(Settings).GetProperties().Select(property => property.Name).ToArray();

                foreach (string column in downloadHistoryNames)
                {
                    if (!HasColumn(column, "DownloadHistory"))
                    {
                        db.Database.ExecuteSqlCommand("ALTER TABLE DownloadHistory ADD COLUMN " + column + " " + GetDownloadHistoryColumnSqlType(column));
                    }
                }

                foreach (string column in settingNames)
                {
                    if (!HasColumn(column, "settings"))
                    {
                        db.Database.ExecuteSqlCommand("ALTER TABLE SETTINGS ADD COLUMN " + column + " " + GetSettingColumnSqlType(column));
                    }
                }

                db.SaveChanges();
                db.Dispose();
            }
        }
Exemplo n.º 2
0
 public static void UpdateSettings(Settings set)
 {
     using (Youtube2Mp3DatabaseEntities db = new Youtube2Mp3DatabaseEntities())
     {
         var count = db.Settings.Where(o => o.Id >= 0).Count();
         if (count > 0)
         {
             db.Settings.Attach(set);
             var entry = db.Entry(set);
             entry.State = System.Data.Entity.EntityState.Modified; //Mark it for update
             db.SaveChanges();                                      //push to database
             db.Dispose();
         }
         else
         {//The settings table is still empty
             db.Settings.Add(set);
             db.SaveChanges();
             db.Dispose();
         }
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Saves pending changes to the database, disposes it, and refreshes the local cache list
 /// </summary>
 /// <param name="db"></param>
 private static void SaveAndCloseDataBase(Youtube2Mp3DatabaseEntities db)
 {
     db.SaveChanges();
     RefreshCacheList();
     db.Dispose();
 }