示例#1
0
        public async Task <AnaliseDto> AnalisarAsync(ParametrosDeAnaliseDto parametrosDeAnaliseDto)
        {
            var retornoDaAnalise = await AnalisarParametrosAsync(parametrosDeAnaliseDto);

            await ImprimirRelatorioAsync(retornoDaAnalise, parametrosDeAnaliseDto.TiposDeRelatorio);

            return(retornoDaAnalise);
        }
示例#2
0
        private void Validar(ParametrosDeAnaliseDto parametrosDeAnaliseDto)
        {
            if (string.IsNullOrEmpty(parametrosDeAnaliseDto.CaminhoDoArquivo))
            {
                throw new ApplicationException("-Caminho do arquivo não pode estar vazio.");
            }

            if (_regex.IsMatch(parametrosDeAnaliseDto.CaminhoDoArquivo))
            {
                throw new ApplicationException("-Caminho do arquivo em um formato invalido.");
            }
        }
示例#3
0
        private async Task <AnaliseDto> AnalisarParametrosAsync(ParametrosDeAnaliseDto parametrosDeAnaliseDto)
        {
            Validar(parametrosDeAnaliseDto);

            Stopwatch diagnostico = new Stopwatch();

            diagnostico.Start();

            var retorno = await _analisador.ProcessarAsync(parametrosDeAnaliseDto.CaminhoDoArquivo, parametrosDeAnaliseDto.TamanhoDoBufferEmBytes);

            diagnostico.Stop();

            return(new AnaliseDto(
                       retorno.NomeDoArquivo,
                       retorno.TamanhoDoArquivo.ToMegaBytesString(),
                       retorno.CaminhoFisico,
                       retorno.NumeroDeIteracoes,
                       diagnostico.Elapsed.ToTimeFormat(),
                       diagnostico.Elapsed.Divide(retorno.NumeroDeIteracoes).ToTimeFormat()));
        }