public async void TestRunAsync(List <string> args) { if (args.Count == 1) { if (args[0].Trim().ToLower() == "progress") { if (_progress != null) { ShowProgress(_progress); } else { _console.WriteLine("Нет операции"); } return; } else if (args[0].Trim().ToLower() == "stop") { if (_testRun != null) { _testRun.Stop(); _console.WriteLine("Тестовый прогон остановлен"); } else { _console.WriteLine("Нет операции"); } return; } } if (args.Count < 2) { _console.WriteError("Неверное число аргументов"); return; } int tickSourceID; int testConfigID; int?accountID = null; int r; if (int.TryParse(args[0].Trim(), out r)) { tickSourceID = r; } else { _console.WriteError("Неверно указан id источника"); return; } if (int.TryParse(args[1].Trim(), out r)) { testConfigID = r; } else { _console.WriteError("Неверно указан id тестовой конфигурации"); return; } if (args.Count >= 3) { if (int.TryParse(args[2].Trim(), out r)) { accountID = r; } else { _console.WriteError("Неверно указан id счета"); return; } } _console.WriteLine("Загрузка данных ... "); _testRun = new TestRun(_accountBL, _accountDA, _instrumBL, _insStoreBL, _tickSourceBL, _testConfigBL, _logger, _config, _posBL, _reposBL); _progress = new BgTaskProgress(_syncContext, "Тестовый прогон"); try { bool isSuccess = await _testRun.Initialize(tickSourceID, testConfigID, accountID, _progress); if (isSuccess) { var stat = _testRun.GetTickSourceStatistics(); _console.WriteLine(string.Format("Всего загружено дней: {0}, тиков: {1}", stat.TotalDaysCount.ToString(), stat.TotalTicksCount.ToString())); _console.WriteLine(string.Format("Из них синтезировано дней: {0} ({1}%), тиков: {2} ({3}%)", stat.SynDaysCount.ToString(), (stat.TotalDaysCount != 0 ? (decimal)stat.SynDaysCount * 100 / stat.TotalDaysCount : 0).ToString("##0.0#"), stat.SynTicksCount, (stat.TotalTicksCount != 0 ? (decimal)stat.SynTicksCount * 100 / stat.TotalTicksCount : 0).ToString("##0.0#"))); _console.WriteLine("Тестовый прогон выполняется ... "); _testRun.Start(TestRunFinished); } else { _console.WriteLine("Ошибка при инициализации."); } } catch (Exception ex) { _console.WriteError(ex.ToString()); } }