コード例 #1
0
        private void EcecuteCmd()
        {
            if (CommandLineArgs.ContainsKey("/setting"))
            {
                string settingName = CommandLineArgs["/setting"] as string;
                logger.Info("Запуск с праметром /setting:" + settingName);

                //загружаем настройки
                ServiceSA1C serviceSA1C = new ServiceSA1C();
                serviceSA1C.LoadSettings();
                //и запускаем обмен
                serviceSA1C.ExecuteExchange(settingName);
                //выходим из программы
                App.Current.Shutdown();
            }
        }
コード例 #2
0
        public ExchangeProcessViewModel(WorkspaceViewModel mainWindow, ServiceSA1C serviceSA1C, BaseConfig baseConfig)
        {
            //Загрузим актуальные настройки

            base.MainWindow  = mainWindow;
            _serviceSA1C     = serviceSA1C;
            _baseConfig      = baseConfig;
            _logs            = new ObservableCollection <string>();
            ProgressBarValue = 0;
            DisplayName      = _baseConfig.Name;

            //подписываемся на события
            _serviceSA1C.ExchangeProcess += serviceSA1C_ExchangeProcess;

            bool isNewExchange = true;

            //опрделяем, нужно ли продолжать обмен или начать заново
            if (baseConfig.status.job != Job.Exchange && baseConfig.status.jobStatus != JobStatus.Complite)
            {
                var result = MessageBox.Show("При прошлом запуске обмен не был завешен. Продолжить обмен? \n" +
                                             "(нет - начать обмен заново)",
                                             "Обмен",
                                             MessageBoxButton.YesNo);
                if (result == MessageBoxResult.Yes)
                {
                    isNewExchange = false;
                }
            }

            ThreadStart start = () => _serviceSA1C.ExecuteExchange(_baseConfig.Name, isNewExchange);

            exchangeTread = new Thread(start);
            //завершаем поток принудительно при завершении основного потока
            exchangeTread.IsBackground = true;
            exchangeTread.Start();
        }