private void StartRegisterPendingEvents(ISyncDatabase db) { if (db is ISyncDatabaseRemote) { (db as ISyncDatabaseRemote).StartRegisterPendingEvents(); } }
private void StopRegisterPendingEvents(ISyncDatabase db) { ProcessPendingLogMessages(db); if (db is ISyncDatabaseRemote) { (db as ISyncDatabaseRemote).StopRegisterPendingEvents(); } }
public FSDatabaseTest() { this.rootDir = Support.Helpers.DBCache; //Esty Proxy this.etsyAPI = new EtsyAPIProxy(this.baseURL, Support.Helpers.EtsyAPIKey); //Database Proxy this.syncDatabase = new SyncDatabaseFS(rootDir); }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - private void ExecuteSession(ISyncDatabase local, ISyncDatabase remote, SyncLink link, SyncLinkFilterList Filters) { log.InfoFormat("=== выполняется синхронизация", local.Name, remote.Name); // запуск сеанса local.StartSession(SessionMode.Read); // подготовка реплик SyncLogReplicaInfo replicaInfo = local.SourcePrepare(link); replicaLogItemsCount = replicaInfo.LogCount; if (replicaInfo.LogCount > 1) { SyncLogReplica replica = local.SourceGetNextReplica(replicaInfo, SourcePrepareOptions.None, Filters); remote.StartSession(SessionMode.Write); OnStageCompleted(); SyncReplicaProcessResult result = remote.TargetProcessReplica(replica, TargetProcessOptions.None); OnStageCompleted(); if (result.Success) { remote.EndSession(true); OnStageCompleted(); local.SourceCommitReplica(replicaInfo); } else { log.ErrorFormat("обработка реплики прошла неудачно (возможно были ошибки) - транзакция не подтверджается"); jnl.Success = false; remote.EndSession(false); OnStageCompleted(); local.EndSession(false); return; } } else { log.InfoFormat("нет данных журнала синхронизации", local.Name, remote.Name); remote.EndSession(true); OnStageCompleted(); } local.EndSession(true); string local_messages = local.GetLogMessages(); string remote_messages = remote.GetLogMessages(); logMessages.AppendLine("--- BEGIN LOCAL LOG MESSAGES ------------------------------------------------"); logMessages.Append(local_messages); logMessages.AppendLine("--- END LOCAL LOG MESSAGES ------------------------------------------------"); logMessages.AppendLine("--- BEGIN REMOTE LOG MESSAGES -----------------------------------------------"); logMessages.Append(remote_messages); logMessages.AppendLine("--- END REMOTE LOG MESSAGES -----------------------------------------------"); }
public InventoryAnalysisTests() { this.rootDir = Support.Helpers.DBCache; this.etsyapikey = Support.Helpers.EtsyAPIKey; //Esty Proxy this.etsyAPI = new EtsyAPIProxy(this.baseURL, this.etsyapikey); //Database Proxy this.syncDatabase = new SyncDatabaseFS(rootDir); }
private void ProcessPendingLogMessages(ISyncDatabase db) { if (db is ISyncDatabaseRemote) { LogEventList list = (db as ISyncDatabaseRemote).GetPendingLoggingEvents(); if (list != null) { foreach (LogEvent evt in list) { log.Logger.Log(evt.GetLoggingEvent()); } } } }
public InventoryTrackingControllerTests() { this.estyapikey = Support.Helpers.EtsyAPIKey; this.rootDir = Support.Helpers.DBCache; //Esty Proxy this.etsyAPI = new EtsyAPIProxy(this.baseURL, this.estyapikey); //Database Proxy this.syncDatabase = new SyncDatabaseFS(rootDir); //Analytic Generator InventoryAnalytics ia = new InventoryAnalytics(this.syncDatabase, this.etsyAPI); this.syncController = new SyncController(ia); }
// - - - - - - - - - - - - - - - - - - - - - - - - - - public void Initialize(string databaseName) { ConfigConnection conn = svc.Config.Connections.Find(databaseName); if (conn == null) { throw new ArgumentException(string.Format("Не найдено подключение к базе данных: {0}", databaseName), "databaseName"); } if (!(conn is ConfigDatabase)) { throw new ArgumentException(string.Format("Указанное соединение не является соединением к БД: {0}", databaseName), "databaseName"); } if (!(conn as ConfigDatabase).AllowedRemoteAccess) { throw new ArgumentException(string.Format("Указанное соединение ({0}) не допускает удаленный доступ. Установите свойство AllowedRemoteAccess в true!", databaseName), "databaseName"); } sync_db = conn.GetConnection().GetSyncDatabase(); }
public SyncAgent(ISyncDatabase Local, ISyncDatabase Remote) : this() { _Local = Local; _Remote = Remote; }
public InventoryAnalytics(ISyncDatabase syncDatabase, EtsyAPIProxy etsyAPI) { this.syncDatabase = syncDatabase; this.estyAPI = etsyAPI; }