private static void _DownloadData(Parser reader, FileManager fileManager, Downloader downloader)
        {
            //fileManager.CreateDirectories();
            //Console.WriteLine("Directories created.");

            //fileManager.SaveCoders(downloader.DownloadCoders());
            //Console.WriteLine("Coders list downloaded and saved.");

            //fileManager.SaveRounds(downloader.DownloadRounds());
            //Console.WriteLine("Matchs list downloaded and saved.");

            //var coders = reader.ParseCoders(fileManager.ReadCoders());
            //Console.WriteLine("Read {0} coders.", coders.Count);
            //Parallel.ForEach(coders, new ParallelOptions { MaxDegreeOfParallelism = 50 },
            //                 coder => fileManager.SaveCoderHistory(coder.Id, downloader.DownloadCoderHistory(coder.Id)));
            //Console.WriteLine("Coder history is downloaded and saved.");

            var i = 1;
            var rounds = reader.ParseRounds(fileManager.ReadRounds());
            Console.WriteLine("Read {0} rounds.", rounds.Count);
            Parallel.ForEach(rounds, new ParallelOptions { MaxDegreeOfParallelism = 3 }, round =>
            {
                if (!fileManager.ExistsRoundHistory(round.Id))
                {
                    try
                    {
                        fileManager.SaveRoundHistory(round.Id, downloader.DownloadRoundHistory(round.Id));
                    }
                    catch
                    {
                        Console.WriteLine("{0}: {1} - {2}", i++, round.Id, round.ShortName);
                    }
                }
            });
            Console.WriteLine("Round history is downloaded and saved.");
        }