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(); } }
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(); }