private async Task ObterAtribuicoesEolDre(string professorRf, List <string> codigosDres) { var abrangencia = await servicoEOL.ObterAbrangencia(professorRf, Perfis.PERFIL_CJ); if (abrangencia != null && abrangencia.Dres != null && abrangencia.Dres.Any()) { codigosDres.AddRange(abrangencia.Dres.Select(a => a.Codigo).Distinct()); } }
private async Task BuscaAbrangenciaEPersiste(string login, Guid perfil) { AbrangenciaRetornoEolDto abrangenciaRetornoEolDto; if (perfil == Guid.Parse(PERFIL_SUPERVISOR)) { var listaEscolasDresSupervior = consultasSupervisor.ObterPorDreESupervisor(login, string.Empty); if (!listaEscolasDresSupervior.Any()) { throw new NegocioException($"Não foi possível obter as escolas atribuidas ao supervisor {login}."); } var escolas = from a in listaEscolasDresSupervior from b in a.Escolas select b.Codigo; abrangenciaRetornoEolDto = await servicoEOL.ObterAbrangenciaParaSupervisor(escolas.ToArray()); } else { abrangenciaRetornoEolDto = await servicoEOL.ObterAbrangencia(login, perfil); } if (abrangenciaRetornoEolDto == null) { throw new NegocioException("Não foi possível localizar registros de abrangência para este usuário."); } foreach (var abrangenciaDre in abrangenciaRetornoEolDto.Dres) { var idAbragenciaDre = await repositorioAbrangencia.SalvarDre(abrangenciaDre, login, perfil); if (idAbragenciaDre > 0) { foreach (var abrangenciaUe in abrangenciaDre.Ues) { var idAbragenciaUe = await repositorioAbrangencia.SalvarUe(abrangenciaUe, idAbragenciaDre); if (idAbragenciaUe > 0) { foreach (var abrangenciaTurma in abrangenciaUe.Turmas) { await repositorioAbrangencia.SalvarTurma(abrangenciaTurma, idAbragenciaUe); } } } } else { throw new NegocioException("Não foi possível salvar a abrangência Dre."); } } }