public async Task DoWork() { try { _logger.LogInformation("Serviço de importação de candidatos csv iniciando..."); var csvCandidatos = new List <CsvCandidatoDto>(); _logger.LogInformation("Verificando diretório..."); var dir = $"{Directory.GetCurrentDirectory()}/files"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } _logger.LogInformation("Carregando arquivos..."); var files = Directory.GetFiles(dir); foreach (var file in files) { var records = csvParser.ReadFromFile(file, Encoding.GetEncoding("ISO-8859-1")); csvCandidatos.AddRange(records.Select(c => c.Result)); File.Delete(file); } if (csvCandidatos.Any()) { _logger.LogInformation("Convertendo candidatos..."); var candidatos = csvCandidatos.Select(c => CsvCandidatoParser.ConverteCsvParaDominio(c)); _logger.LogInformation("Armazenando candidatos..."); await _candidatoRepository.AdicionaAsync(candidatos); } _logger.LogInformation("Serviço de importação de candidatos csv finalizado com sucesso!"); } catch (Exception ex) { _logger.LogError($"Ocorreu uma falha durante a importação dos candidatos csv! Detalhes: {ex.Message}"); } }