Ejemplo n.º 1
0
        public async Task <GeradorDeArquivoResposta> ExecutarAsync(GeradorDeArquivoComando comando)
        {
            await _geradorDeLog.GerarLogAsync("Iniciando a gravação do arquivo.");

            var tamanhoBufferValidado = comando.TamanhoDoBufferEmBytes ?? TAMANHODOBUFFEREMBYTESDEFAULT;

            var buffer = new byte[tamanhoBufferValidado * 1024];

            var tamanhoDoTexto = RetornarTamanhoEmBytesDaString(comando.TextoAnalisado);

            string textoIncremental = null;

            var numeroDeIteracoes = 0;

            do
            {
                textoIncremental += comando.TextoAnalisado;

                tamanhoDoTexto = RetornarTamanhoEmBytesDaString(textoIncremental);

                numeroDeIteracoes++;
            } while (tamanhoDoTexto < tamanhoBufferValidado);


            buffer = ASCIIEncoding.Unicode.GetBytes(textoIncremental);

            var nomeDoArquivo = await EscreverArquivo(comando.CaminhoDoArquivo, buffer);

            return(new GeradorDeArquivoResposta(nomeDoArquivo, buffer.Length, comando.CaminhoDoArquivo, numeroDeIteracoes));
        }
Ejemplo n.º 2
0
        public async Task <InformacoesDaAnalise> ProcessarAsync(string caminhoDoArquivo, int?tamanhoDoBufferEmBytes)
        {
            var buscarTextoEmSiteResposta = await _buscarTextoEmSite.ExecutarAsync(new BuscarTextoEmSiteComandos());


            var contadorDeBytesComando  = new ContadorDeBytesComando(buscarTextoEmSiteResposta.TextoRecuperadoDaWeb);
            var contadorDeBytesResposta = await _contadorDeBytes.ExecutarAsync(contadorDeBytesComando);


            var geradorDeArquivoComando = new GeradorDeArquivoComando(
                caminhoDoArquivo,
                tamanhoDoBufferEmBytes,
                buscarTextoEmSiteResposta.TextoRecuperadoDaWeb);


            var geradorDeArquivoResposta = await _geradorDeArquivo.ExecutarAsync(geradorDeArquivoComando);


            return(new InformacoesDaAnalise(
                       geradorDeArquivoResposta.NomeDoArquivo,
                       geradorDeArquivoResposta.TamanhoDoArquivo,
                       geradorDeArquivoResposta.CaminhoFisico,
                       geradorDeArquivoResposta.NumeroDeIteracoes));
        }