public void SaveSettings(Settings settings) { var dialog = new FormSaveSettings(); switch (dialog.Execute()) { case SaveResult.Current: GenericSerializer.Serialize(settings, FileNameHelper.CurrentConfigFileName); if (dialog.UpdateServiceSettings) { try { using (var connector = new TcpBinaryConnector<IManagementService>( settings.Services.ManagementService.Port, PublicNames.ManagementService)) { connector.RemoteObject.Settings = settings; } } catch (System.Net.Sockets.SocketException) { MessageBox.Show(_serviceConnectionFailed, ConstHelper.СonfigurationUtility, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } break; case SaveResult.Export: GenericSerializer.Serialize(settings, dialog.FileName); break; } }
private void LogException(Exception ex) { using (var connector = new TcpBinaryConnector<IManagementService>("localhost", PublicPorts.ManagementService, PublicNames.ManagementService)) { connector.RemoteObject.EventLink.Post(EventSources.Cashier, checkPointId, ex); } }
public void SaveEvent() { if (_activeEvent == null) throw new InvalidOperationException(_createActiveEvent); using (var connector = new TcpBinaryConnector<IStatisticsProtocolManager>( PublicPorts.StatisticsProtocolManager, PublicNames.StatisticsProtocolManager)) { connector.RemoteObject.SaveEvent(_activeEvent); } _activeEvent = null; }
private void DoWork(object sender, DoWorkEventArgs e) { // проходим по всем терминалам из списка // foreach ре используем, нужен индекс для уведомления о прогрессе // выполнения работы for (Int32 i = 0; i < _posTerminalList.Count; i++) { // проверяем статус завершения if (backgroundWorker.CancellationPending) { e.Cancel = true; // прерываем цикл break; } // очередной терминал PosTerminalParams pos = _posTerminalList[i]; // вычисляем процент выполнения Int32 percent = (Int32)(100 * ((float)(i + 1) / (float)_posTerminalList.Count)); // если терминал не отключен if (pos.TemporaryOffline) backgroundWorker.ReportProgress(percent, new WorkStatusHelper(pos, null)); else { try { if (_needDirectConnection) { // получаем ссылку на интерфейс службы управления POS-терминалом using (TcpBinaryConnector<IManagementService> iConnector = new TcpBinaryConnector<IManagementService>(pos.NetworkName, pos.NetworkPort, PublicNames.ManagementService)) { InternalDoWork(iConnector.RemoteObject, pos, percent); } } else InternalDoWork(null, pos, percent); } catch (Exception exception) { // сообщаем о прогрессе выполнения // указываем сообщение об ошибке backgroundWorker.ReportProgress(percent, new WorkStatusHelper(pos, exception)); } } } }