private async void btnImportar_Click(object sender, EventArgs e)
        {
            var dto = new ImportacaoDeConstructosDto
            {
                Edicao = txtAno.Text
            };

            await _constructoServices.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(ImportacaoDeConstructosDto dto)
        {
            if (dto is null)
            {
                dto = new ImportacaoDeConstructosDto();
                dto.AddErro("O DTO é nulo.");
                return;
            }

            try
            {
                var entities = new List <Constructo>();

                var maxConstructoId = await _constructoRepository.GetMaxConstructoId();

                var ciclos = await _cicloAnoEscolarRepository.GetAsync();

                var anosEscolares         = GetAnosEscolares();
                var constructorsResumidos = GetConstructosResumidos();
                foreach (var constructoReumido in constructorsResumidos)
                {
                    var constructos = anosEscolares
                                      .Select(anoEscolar => new Constructo
                    {
                        AnoEscolar   = anoEscolar,
                        CicloId      = ciclos.FirstOrDefault(x => x.AnoEscolar == anoEscolar)?.CicloId ?? default,
                        ConstructoId = ++maxConstructoId,
                        Edicao       = dto.Edicao,
                        FatorAssociadoQuestionarioId = 5,
                        Nome       = constructoReumido.Nome,
                        Referencia = constructoReumido.Referencia
                    })
                                      .ToList();

                    entities.AddRange(constructos);
                }