コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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>());
        }
コード例 #3
0
        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);
        }