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());
            }
        }
Esempio n. 2
0
        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.");
                }
            }
        }