private async Task MontaSecoes(RelatorioParecerConclusivoDto retorno, IEnumerable <RelatorioParecerConclusivoRetornoDto> parecesParaTratar, int anoLetivo, string dreCodigoEnviado, string ueCodigoEnviado, long cicloIdEnviado, int modalidadeId, int?semestre, string[] anos, long parecerConclusivoId) { IEnumerable <string> dresCodigos; if (retorno.DreNome == "Todas") { var dresRetorno = await mediator.Send(new ObterTodasDresQuery()); dresCodigos = dresRetorno.Select(a => a.Codigo); foreach (var dre in dresRetorno) { var dreParaAdicionar = new RelatorioParecerConclusivoDreDto(); dreParaAdicionar.Codigo = dre.Codigo; dreParaAdicionar.Nome = dre.Abreviacao; await TrataUes(parecesParaTratar, dreParaAdicionar, anoLetivo, dre.Id, ueCodigoEnviado, cicloIdEnviado, modalidadeId, semestre, anos, parecerConclusivoId); retorno.Dres.Add(dreParaAdicionar); } } else { var dreUnicaParaAdicionar = await mediator.Send(new ObterDrePorCodigoQuery() { DreCodigo = dreCodigoEnviado }); var dreParaAdicionar = new RelatorioParecerConclusivoDreDto(); dreParaAdicionar.Codigo = dreUnicaParaAdicionar.Codigo; dreParaAdicionar.Nome = dreUnicaParaAdicionar.Abreviacao; if (retorno.UeNome == "Todas") { await TrataUes(parecesParaTratar, dreParaAdicionar, anoLetivo, dreUnicaParaAdicionar.Id, "", cicloIdEnviado, modalidadeId, semestre, anos, parecerConclusivoId); } else { await TrataUes(parecesParaTratar, dreParaAdicionar, anoLetivo, dreUnicaParaAdicionar.Id, ueCodigoEnviado, cicloIdEnviado, modalidadeId, semestre, anos, parecerConclusivoId); } retorno.Dres.Add(dreParaAdicionar); } }
private async Task TrataUes(IEnumerable <RelatorioParecerConclusivoRetornoDto> parecesParaTratar, RelatorioParecerConclusivoDreDto dreParaAdicionar, int anoLetivo, long dreId, string ueCodigoEnviado, long cicloIdEnviado, int modalidadeId, int?semestre, string[] anos, long parecerConclusivoId) { List <Ue> uesDaDre = new List <Ue>(); if (string.IsNullOrEmpty(ueCodigoEnviado)) { uesDaDre = (await mediator.Send(new ObterUesPorDreSemestreModadalidadeAnoIdQuery(dreId, semestre, modalidadeId, anos))).ToList(); } else { var ue = await mediator.Send(new ObterUePorCodigoQuery(ueCodigoEnviado)); uesDaDre.Add(ue); } foreach (var ueDaDre in uesDaDre) { var ueParaAdicionar = new RelatorioParecerConclusivoUeDto(); ueParaAdicionar.Nome = ueDaDre.NomeComTipoEscola; ueParaAdicionar.Codigo = ueDaDre.Codigo; await TrataCiclosDaUe(parecesParaTratar, ueDaDre.Id, ueParaAdicionar, anoLetivo, modalidadeId, cicloIdEnviado, anos, parecerConclusivoId); dreParaAdicionar.Ues.Add(ueParaAdicionar); } }