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."); } } }
private Task <AbrangenciaRetornoEolDto> ObterAbrangenciaEolSupervisor(string login) { Task <AbrangenciaRetornoEolDto> consultaEol = null; var listaEscolasDresSupervior = consultasSupervisor.ObterPorDreESupervisor(login, string.Empty); if (listaEscolasDresSupervior.Any()) { var escolas = from a in listaEscolasDresSupervior from b in a.Escolas select b.Codigo; consultaEol = servicoEOL.ObterAbrangenciaParaSupervisor(escolas.ToArray()); } return(consultaEol); }