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)); }
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)); }