public void FetchSyncEntriesIntoLocalDB() { Logger.Info("Fetching SyncJn from MySQL..."); List <Sync_jn> syncListFromMysql = GetAllSyncJnFromMysql(); Logger.Info("Success! " + syncListFromMysql.Count + " Entries fetched."); Logger.Info("Fetching SyncJn from DB2..."); List <Sync_jn> syncListFromDB2 = GetAllSyncJnFromDB2(); Logger.Info("Success! " + syncListFromDB2.Count + " Entries fetched."); List <Sync_jn> syncListTotal = new List <Sync_jn>(); syncListTotal.AddRange(syncListFromMysql); syncListTotal.AddRange(syncListFromDB2); SynchronisationDatabaseEntities5 db = new SynchronisationDatabaseEntities5(); db.Sync_jn.AddRange(syncListTotal); Logger.Info("Fetched " + syncListTotal.Count + " Entries into local DB"); db.SaveChanges(); List <SyncJn> synced = (from syncJn in syncListTotal select new SyncJn() { JnId = syncJn.jn_id, JnApplication = syncJn.jn_application } ).ToList(); foreach (SyncJn sync in synced) { try { SetSynced(sync, (DatabaseType)Enum.Parse(typeof(DatabaseType), sync.JnApplication)); } catch (Exception e) { string message = "Could not translate ENUM: " + sync.JnApplication; Logger.Error(message); AddErrorLog(message); } } }
private List <SyncJn> GetAllSyncJnFromLocal() { byte unsynced = Convert.ToByte(HandleInt("0")); SynchronisationDatabaseEntities5 db = new SynchronisationDatabaseEntities5(); return((from syncJn in db.Sync_jn where syncJn.jn_synced.Equals(unsynced) orderby syncJn.jn_timestamp descending, syncJn.jn_id ascending select new SyncJn() { JnId = syncJn.jn_id, JnTable = syncJn.jn_table, JnPk = syncJn.jn_pk, JnOperation = syncJn.jn_operation, JnTimestamp = "", JnApplication = syncJn.jn_application, JnChangesetJson = syncJn.jn_changeset_json, JnSynced = syncJn.jn_synced }).ToList <SyncJn>()); }
private void SetSynced(SyncJn sync, DatabaseType type) { if (type.Equals(DatabaseType.LOCAL)) { SynchronisationDatabaseEntities5 db = new SynchronisationDatabaseEntities5(); try { Sync_jn localSyncEntry = (from syncJn in db.Sync_jn where syncJn.jn_id.Equals(sync.JnId.Value) select syncJn).Single <Sync_jn>(); db.Sync_jn.Remove(localSyncEntry); db.SaveChanges(); } catch (Exception e) { string message = "Error updating local database: " + e.Message; Logger.Error(message); AddErrorLog(message); } return; } Logger.Info("Setting Entry with ID " + sync.JnId + " synced in " + type); DatabaseClientFactory.GetClient(type).ExecuteQuery("update sync_jn set jn_synced = " + 1 + " where jn_id = " + sync.JnId, null); }