Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        public Engine(Config config)
        {
            _config = config;

            _block3Files = new Block3Files(config.InputFile, config.OutputFile, config.ErrorsFile, string.IsNullOrEmpty(config.InputString));

            _processComprenoConfig();
        }
Beispiel #3
0
        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);
                }
            });
        }