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);
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
            }
        }