private void ProcessScenario(ScenarioInput scenario)
        {
            Console.WriteLine($"Scenario: {scenario.Directory}\\{scenario.FileName}");
            Console.WriteLine(JsonConvert.SerializeObject(scenario));
            ConfigProxy(scenario);

            for (var currentSystemLanguage = 0; currentSystemLanguage < scenario.UrlFetch.BaseUrl.Length; currentSystemLanguage++)
            {
                scenario.CurrentSystem = currentSystemLanguage;

                for (var count = 1; count <= scenario.Count; count++)
                {
                    foreach (var subScenario in scenario.Clients)
                    {
                        Console.WriteLine($"Scenario: {scenario.Directory}\\{scenario.FileName}");
                        Console.WriteLine($"System Language: {scenario.CurrentSystemName}");
                        Console.WriteLine($"    Bateria de Teste: {count}/{scenario.Count}");
                        Console.WriteLine($"        SubScenario: {subScenario}");
                        Console.WriteLine("         Start sending");

                        if (File.Exists(scenario.ResultPath(count, subScenario)))
                        {
                            File.Delete(scenario.ResultPath(count, subScenario));
                        }

                        if (scenario.AsyncClients)
                        {
                            var tasks = new List <Task <MetricStatus> >();
                            for (var i = 1; i <= subScenario; i++)
                            {
                                tasks.Add(MakeRequestAsync(scenario, i, subScenario));
                            }

                            var results = Task.WhenAll(tasks).GetAwaiter().GetResult();
                            foreach (var result in results)
                            {
                                scenario.AddResult(count, subScenario, result);
                            }
                        }
                        else
                        {
                            for (var i = 1; i <= subScenario; i++)
                            {
                                scenario.AddResult(count, subScenario, MakeRequest(scenario, i, subScenario));
                            }
                        }
                    }
                }
                _resultWriterService.Write(scenario);
            }
        }
        private void ProcessScenario(Scenario scenario)
        {
            Console.WriteLine($"Scenario: {scenario.FileName}");
            Console.WriteLine();

            if (File.Exists(scenario.ResultPath))
            {
                File.Delete(scenario.ResultPath);
            }

            for (int i = 0; i < scenario.Count; i++)
            {
                new Thread((x) =>
                {
                    var result = MakeRequest(scenario);
                    _resultWriterService.Write(scenario, ((int)x) + 1, result);
                }).Start(i);
            }
        }