private async void btnImportar_Click(object sender, EventArgs e) { var dto = new ImportacaoDeImagemAlunoDto { Ano = txtAno.Text, CaminhoDaDoArquivo = txtArquivo.Text }; await _imagemAlunoServices.ImportarAsync(dto); if (!dto.IsValid()) { MessageBox.Show(dto.Erros.FirstOrDefault(), "Erro na importação", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MessageBox.Show("Importação realizada com sucesso.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); }
public async Task ImportarAsync(ImportacaoDeImagemAlunoDto dto) { if (dto is null) { dto = new ImportacaoDeImagemAlunoDto(); dto.AddErro("O DTO é nulo."); return; } try { var connection = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={dto.CaminhoDaDoArquivo}"; var dtImagens = GetImagensAlunoFromAccess(connection); if (dtImagens.Rows.Count <= 0) { dto.AddErro("Não existem regitros na planilha para exportação."); return; } var entities = dtImagens .AsEnumerable() .Select(row => new ImagemAluno { AluMatricula = row["CD_ALUNO_SME"].ToString(), AluNome = row["NOME"].ToString(), AreaConhecimentoId = GetAreaDeConhecimentoId(row["DISCIPLINA"].ToString()), Caminho = FormatCaminhoDaImagem(row["IMAGEM"].ToString()), Edicao = dto.Ano, EscCodigo = row["CD_UNIDADE_EDUCACAO"].ToString(), Pagina = int.Parse(row["PAGINA"].ToString()), Questao = row["QUESTAO"].ToString() }) .ToList(); AdjustEntities(entities); await _imagemAlunoRepository.InsertAsync(entities); } catch (Exception ex) { dto.AddErro(ex.InnerException?.Message ?? ex.Message); } }
public async Task ImportarAsync(ImportacaoDeImagemAlunoDto dto) { if (dto is null) { dto = new ImportacaoDeImagemAlunoDto(); dto.AddErro("O DTO é nulo."); return; } try { var dtImagens = CsvManager.GetCsvFile(dto.CaminhoDaDoArquivo); if (dtImagens.Rows.Count <= 0) { dto.AddErro("Não existem regitros na planilha para exportação."); return; } var entities = dtImagens .AsEnumerable() .Select(row => new ImagemAluno { AluMatricula = row["CD_ALUNO_SME"].ToString(), AluNome = row["NOME"].ToString(), AreaConhecimentoId = 4, Caminho = FormatCaminhoDaImagem(row["IMAGEM"].ToString()), Edicao = dto.Ano, EscCodigo = row["CD_UNIDADE_EDUCACAO"].ToString(), Pagina = int.Parse(row["PAGINA"].ToString()), Questao = "Redação" }) .ToList(); AdjustEntities(entities); await _imagemAlunoRepository.InsertAsync(entities); } catch (Exception ex) { dto.AddErro(ex.InnerException?.Message ?? ex.Message); } }