public SendContentPackages(Int64 clientId, Int64 sessionId, SqlConnection cnn, ReplicationService.ReplicationServiceClient client, Int32 lastPkgId) { _cnn = cnn; _client = client; _lastPkgId = lastPkgId; _clientId = clientId; _sessionId = sessionId; }
public ReceivePackages(Int64 clientId, Int64 sessionId, SqlConnection cnn, ReplicationService.ReplicationServiceClient client, Int32 lastPkgId) : base(cnn) { _client = client; _lastPkgId = lastPkgId; _clientId = clientId; _sessionId = sessionId; }
public SendPackages(Int64 clientId, Int64 sessionId, SqlConnection cnn, ReplicationService.ReplicationServiceClient client, Int32 lastPkgId) { _cnn = cnn; _client = client; _lastPkgId = lastPkgId; _clientId = clientId; _sessionId = sessionId; _counters = new Dictionary <String, Int32>(); }
static void DoMain() { String _cnnStr = GetConnectionString(); if (String.IsNullOrEmpty(_cnnStr)) { return; // ошибка уже выведена } Log.WriteLine("Подключение: {0}", _cnnStr); var client = new ReplicationService.ReplicationServiceClient(); try { using (var cnn = new SqlConnection(_cnnStr)) { cnn.Open(); Int32 dbVer = 0; if (!CheckDbVersion(cnn, out dbVer)) { return; // ошибка уже выведена } Int32 clientId = GetLongSysParam(cnn, "DB_ID"); Log.WriteLine("Идентификатор клиентской БД:\t\t{0}", clientId); if (clientId == -1) { Log.WriteLine("Ошибка. В клиентской базе данных не установлено значение DB_ID"); return; } else if (clientId == 0) { Log.WriteLine("Ошибка. База данных не является клиентской БД (DB_ID = 0)"); return; } Int64 sessionId = client.StartSession(clientId); Log.WriteLine("Идентификатор сеанса репликации:\t{0}", sessionId); StartClientSession(cnn, sessionId); /* ВХОДЯЩИЕ СПРАВОЧНИКИ */ Int32 lastPkgId = GetLongSysParam(cnn, "LAST_PKG_ID"); (new ReceivePackages(clientId, sessionId, cnn, client, lastPkgId)).Run(); /* ВХОДЯЩИЕ ДОКУМЕНТЫ */ (new GetPackages(clientId, sessionId, cnn, client, lastPkgId)).Run(); /* ИСХОДЯЩИЕ ДОКУМЕНТЫ, ЧЕКИ, Z-ОТЧЕТЫ и т.д.*/ (new SendPackages(clientId, sessionId, cnn, client, lastPkgId)).Run(); /* ИСХОДЯЩИЕ ПАКЕТЫ */ (new SendContentPackages(clientId, sessionId, cnn, client, lastPkgId)).Run(); client.EndSession(clientId, sessionId); EndClientSession(cnn, sessionId); } } catch (FaultException ex) { Log.WriteLine("Ошибка на сервере: " + ex.Message); } catch (SqlException sqex) { Log.WriteLine("SqlException: " + sqex.Message); } catch (Exception ex2) { Log.WriteLine("Exception: " + ex2.Message); } finally { client.Close(); } }