protected override ILoremIpsumService GetInstance()
        {
            IWebDriverFactory  factory      = new PhantomJSFactory();
            ILoremIpsumService loremCrawler = new LoremIpsumCrawler(factory);

            return(loremCrawler);
        }
Пример #2
0
        static void Main(string[] args)
        {
            IConfiguration config = new ConfigurationBuilder()
                                    .SetBasePath(Directory.GetCurrentDirectory())
                                    .AddJsonFile("appsettings.json")
                                    .Build();

            IWebDriverFactory   factory        = new PhantomJSFactory();
            ILoremIpsumService  loremCrawler   = new LoremIpsumCrawler(factory);
            IByteCounterService counterCrawler = new ByteCounterCrawler(factory);

            ILoremIpsumService  loremFallback   = new LoremIpsumFallback();
            IByteCounterService counterFallback = new ByteCounterFallback();

            ILoremIpsumService  loremFallbackManager   = new LoremIpsumFallBackManager(loremCrawler, loremFallback);
            IByteCounterService counterFallbackManager = new ByteCounterFallBackManager(counterCrawler, counterFallback);

            var path = @"C:\Users\Leandro\Desktop\lorem.txt";

            if (!int.TryParse(config["bufferSizeInMB"], out var bufferSizeInMB))
            {
                bufferSizeInMB = 1;
            }

            if (!int.TryParse(config["maxFileSizeInMB"], out var maxFileSizeInMB))
            {
                maxFileSizeInMB = 100;
            }

            int iterations = 0;

            TimeSpan elapsedTime = GetExecutionTime(() =>
            {
                var writter = new FileWriterManager(loremFallbackManager, counterFallbackManager, path, bufferSizeInMB, maxFileSizeInMB);

                iterations = writter.WriteLoremFile(true, 8, ParagraphSize.Long);
            });

            Console.Clear();
            Console.WriteLine($"numero de iterações realizadas: {iterations}");
            Console.WriteLine($"tempo total, em segundos, de geração do arquivo: {elapsedTime.TotalSeconds}");
            Console.WriteLine($"tempo médio de escrita: {elapsedTime.TotalSeconds / iterations}");
            Console.WriteLine($"nome arquivo: {Path.GetFileName(path)}");
            Console.WriteLine($"tamanho, em bytes, do arquivo: {new FileInfo(path).Length}");
            Console.WriteLine($"caminho arquivo: {Path.GetDirectoryName(path)}");
            Console.Read();
        }