Exemple #1
0
        private async void btnImportar_Click(object sender, EventArgs e)
        {
            var dto = new ImportacaoDeFatoresAssociadosDto
            {
                Edicao            = txtAno.Text,
                CaminhoDaPlanilha = txtArquivo.Text,
            };

            await _fatorAssociadoServices.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);
        }
Exemple #2
0
        public async Task ImportarAsync(ImportacaoDeFatoresAssociadosDto dto)
        {
            if (dto is null)
            {
                dto = new ImportacaoDeFatoresAssociadosDto();
                dto.AddErro("O DTO é nulo.");
                return;
            }

            try
            {
                var dtFatoresAssociados = GetTabelaDeFatoresAssociadosAjustada(dto.CaminhoDaPlanilha);
                if (dtFatoresAssociados.Rows.Count <= 0)
                {
                    dto.AddErro("Não existem regitros na planilha para exportação.");
                    return;
                }

                var ciclosAnoEscolar = await _cicloAnoEscolarRepository.GetAsync();

                var constructos = await _constructoRepository.GetAsync(dto.Edicao);

                var entities = dtFatoresAssociados
                               .AsEnumerable()
                               .Where(row => !string.IsNullOrWhiteSpace(row["AreaConhecimentoID"].ToString()))
                               .Select(row => new FatorAssociado
                {
                    AreaConhecimentoId = int.Parse(row["AreaConhecimentoID"].ToString()),
                    ConstructoId       = GetConstructoId(dto.Edicao, int.Parse(row["AnoEscolar"].ToString()), row["ID"].ToString(), ciclosAnoEscolar, constructos),
                    Pontos             = row["Pontos"].ToString()
                })
                               .ToList();

                await _fatorAssociadoRepository.InsertAsync(entities);
            }
            catch (Exception ex)
            {
                dto.AddErro(ex.InnerException?.Message ?? ex.Message);
            }
        }