private static bool SyncDictionaries <T>(ConnectionStringSettings connectionStringSettings) where T : class { List <T> items = new List <T>(); try { using (CtsUniversalContext <T> centralDB = new CtsUniversalContext <T>("centralDBConnection")) { items.AddRange(centralDB.DbSet.ToList()); } if (items.Count != 0) { using (CtsUniversalContext <T> localDB = new CtsUniversalContext <T>(connectionStringSettings.ConnectionString)) { //using (var transaction = localDB.Database.BeginTransaction()) //{ foreach (var item in items) { localDB.DbSet.AddOrUpdate(item); } localDB.SaveChanges(); //transaction.Commit(); //} } } return(true); } catch (Exception ex) { lock (log) { log.Message(ex); } return(false); } //catch (DbEntityValidationException ex) //{ // foreach (var eve in ex.EntityValidationErrors) // { // Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", // eve.Entry.Entity.GetType().Name, eve.Entry.State); // foreach (var ve in eve.ValidationErrors) // { // Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", // ve.PropertyName, ve.ErrorMessage); // } // } // throw; // Console.WriteLine(ex.Message); // return false; //} }
private static bool SyncDictionaries <T>(ConnectionStringSettings connectionStringSettings) where T : class { List <T> items = new List <T>(); try { using (CtsUniversalContext <T> centralDB = new CtsUniversalContext <T>("centralDBConnection")) { items.AddRange(centralDB.DbSet.ToList()); } if (items.Count != 0) { using (CtsUniversalContext <T> localDB = new CtsUniversalContext <T>(connectionStringSettings.ConnectionString)) { using (var transaction = localDB.Database.BeginTransaction()) { foreach (var item in items) { localDB.DbSet.AddOrUpdate(item); } localDB.SaveChanges(); transaction.Commit(); } } } _logger.Trace(string.Format("{0} Successfully synchronized Dictionary {1}", connectionStringSettings.Name.ToString(), typeof(T).ToString())); return(true); } catch (Exception ex) { _logger.Error(string.Format("{0} Unsuccess with SyncDictionary {1}", connectionStringSettings.Name.ToString(), typeof(T).ToString())); _logger.Error(ex.ToString()); return(false); } }