static void Main(string[] args) { log4net.Config.XmlConfigurator.Configure(); log.Info(new string(Environment.NewLine.ToCharArray()[0],4) + "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Программа для Блок№3 запущена>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); if (args.Length == 0 || args.Length > 3) { log.ErrorFormat( "Получено {0} входящих параметров. Должно быть 1 или 2 или 3: InputFileName + ResultFileName + ErrorFileName", args.Length); } try { var comprenoSettings = Block3ConsoleApp.Properties.Settings.Default; var b3EngineConfig = new Config { InputFile = args[0], OutputFile = args.Length >= 2 ? args[1] : string.Format("Block3Result_{0}.xml", DateTime.Now.ToString("mm.dd.HH.mm.ss")), ErrorsFile = args.Length >= 3 ? args[2] : "Block3Error.log", ComprenoConfig = new ComprenoConfig { Login = comprenoSettings.ComprenoLogin, Password = comprenoSettings.ComprenoPassword, Uri = comprenoSettings.ComprenoURI, SaveResult = comprenoSettings.SaveComprenoResults, ResultsDir = comprenoSettings.ComprenoResultsDirectory } }; var b3Engine = new Engine(b3EngineConfig); if (b3Engine.CheckConfig()) { b3Engine.Analyze(); } else { log.Error("Запуск приложения отменен. Входные аргументы не верны. Подробнее см. лог файл."); Environment.Exit(cExitCodeInputParamsIncorrect); } Console.ReadKey(); Environment.Exit(cExitCodeOK); } catch (Exception e) { log.Fatal(e.ToString()); log.Info("TODO: BLock3Files:WriteError - Реализовать запись ошибок в файл"); Console.ReadKey(); Environment.Exit(cExitCodeProcessingError); } }
private void _runAnalysisAsync(string inputString, string inputFilePath, string outputFilePath, string errorsFilePath) { var uiContext = SynchronizationContext.Current; Task.Run(() => { var logger = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType; var log = log4net.LogManager.GetLogger(logger); try { var comprenoSettings = Block3UI.Properties.Settings.Default; var b3EngineConfig = new Config { InputString = inputString, InputFile = inputFilePath, OutputFile = outputFilePath, ErrorsFile = errorsFilePath, ComprenoConfig = new ComprenoConfig { Login = comprenoSettings.ComprenoLogin, Password = comprenoSettings.ComprenoPassword, Uri = comprenoSettings.ComprenoURI, SaveResult = comprenoSettings.SaveComprenoResults, ResultsDir = comprenoSettings.ComprenoResultsDirectory } }; var b3Engine = new Engine(b3EngineConfig); if (b3Engine.CheckConfig()) { b3Engine.Analyze(_saveAlgorithmResults, (type, algorithm) => _currentAlgLogMessages = new List<string>()); return true; } else { log.Error("Запуск приложения отменен. Входные аргументы не верны. Подробнее см. лог файл."); return false; } } catch (Exception e) { log.Fatal(e.ToString()); log.Info("TODO: BLock3Files:WriteError - Реализовать запись ошибок в файл"); return false; } }).ContinueWith(analysisTask => { _canGoBack = true; NotifyPropertyChanged("CanGoBack"); if (analysisTask.Exception == null && analysisTask.Result) { _resultMessage = "Анализ выполнен успешно, перейдите к результатам."; _resultMessageColor = "DarkGreen"; _canGoForward = true; NotifyPropertyChanged("CanGoForward"); } else { _resultMessage = "Анализ выполнен с ошибками. Исправьте их или выбирете другое предложение для анализа."; _resultMessageColor = "DarkRed"; } NotifyPropertyChanged("ResultMessage"); NotifyPropertyChanged("ResultMessageColor"); if (_canGoForward) { uiContext.Post(state => _showAnalysisResults(), null); } }); }