public void should_parse_generic_parameters() { var constructorString = "CSharpConstructor:CurrencyChoiceHasSignificantSpreadRequirement(Func<CurrencyChoiceCorpAction,IValueWithSource>,ICurrencyAmountConverter,ICorporateActionRepository)"; var expected = new[] { "Func<CurrencyChoiceCorpAction,IValueWithSource>", "ICurrencyAmountConverter", "ICorporateActionRepository" }; var parameters = _provider.GetParameters(constructorString).ToArray(); Assert.That(parameters, Is.EquivalentTo(expected)); }
/// <summary> /// Выполнение задачи /// </summary> /// <param name="parameters">Провайдер параметров</param> public void Run(ParameterProvider parameters) { var enc = String.IsNullOrEmpty(_fileEncoding) ? System.Text.Encoding.UTF8 : System.Text.Encoding.GetEncoding(_fileEncoding); _filePath = parameters.Parse(_filePath).First(); File.WriteAllText(_filePath, parameters.GetParameters()[_key], enc); }
/// <summary> /// Создание задачи из XML-определения /// </summary> /// <param name="declaration">XML-определение</param> /// <returns></returns> public void Run(ParameterProvider paramProvider) { var param = CreateLogParserParams(paramProvider.GetParameters()); var queryFile = paramProvider.Parse(_queryFile).First(); string headerParam = null; if ("TSV".Equals(_inputFormat, StringComparison.InvariantCultureIgnoreCase)) { headerParam = string.Format("-headerRow:{0}", _headerRow ? "on" : "off"); } var args = String.Format("-i:{3} file:{0}?{1} {2} -o:\"{4}\" {5}", queryFile, param, headerParam, _inputFormat, _outputFormat, _otherParams); Application.Log(LogLevel.Informational, args); var cmd = new ProcessStartInfo(@"Binaries\LogParser\LogParser.exe", args); cmd.UseShellExecute = false; Process.Start(cmd).WaitForExit(); }
/// <summary> /// Запуск задачи /// </summary> /// <param name="parameters">Провайдер параметров</param> public void Run(ParameterProvider parameters) { System.Threading.Thread.Sleep(5000); FormatCompiler compiler = new FormatCompiler(); if (string.IsNullOrWhiteSpace(_template) && !string.IsNullOrWhiteSpace(_templateFile)) { _template = File.ReadAllText(parameters.Parse(_templateFile).First()); } //Компилция шаблона Generator generator = compiler.Compile(_template); //В шаблоне можно использовать все параметры, заданные в конфигурации. var _templateParams = new Dictionary <string, object>(); foreach (var param in parameters.GetParameters()) { _templateParams.Add(param.Key, param.Value); } foreach (var param in _paramsDescription) { object value = null; var filePath = parameters.Parse(param.FilePath).First(); var enc = String.IsNullOrEmpty(param.Encoding) ? System.Text.Encoding.UTF8 : System.Text.Encoding.GetEncoding(param.Encoding); if (File.Exists(filePath)) { switch (param.Mode) { case "text": if (param.HasHeaders) { value = string.Join("\n", File.ReadAllLines(filePath).Skip(1)); } else { value = File.ReadAllText(filePath, enc); } break; case "csv": value = File.ReadAllLines(filePath, enc).Skip(param.HasHeaders ? 1 : 0).Select(x => x.Split(';')).ToList(); break; case "tsv": value = File.ReadAllLines(filePath, enc).Skip(param.HasHeaders ? 1 : 0).Select(x => x.Split('\t')).ToList(); break; default: value = File.ReadAllText(filePath, enc); break; } } _templateParams.Add(param.Name, value); } parameters.AddParameter(_outputParam, generator.Render(_templateParams)); }