Esempio n. 1
0
        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;
        }
Esempio n. 4
0
        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));
                    }
                }
            }
        }