public async Task <IEnumerable <AbrangenciaDreRetorno> > ObterDres()
        {
            var loginAtual  = servicoUsuario.ObterLoginAtual();
            var perfilAtual = servicoUsuario.ObterPerfilAtual();

            if (perfilAtual == Perfis.PERFIL_CJ)
            {
                var codigosDres = new List <string>();

                ObterAtribuicoesCjDre(loginAtual, codigosDres);
                ObterAtribuicoesEsporadicasDre(loginAtual, codigosDres);
                await ObterAtribuicoesEolDre(loginAtual, codigosDres);

                var dres = repositorioDre.ListarPorCodigos(codigosDres.Distinct().ToArray());

                if (dres != null && dres.Any())
                {
                    return(TransformarDresEmDresDto(dres));
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(await consultasAbrangencia.ObterDres(null, 0));
            }
        }
        private async Task ValidarAbrangenciaDre(ComunicadoDto filtroDto)
        {
            var abrangenciaDres = await consultasAbrangencia.ObterDres(null);

            var dre = abrangenciaDres.FirstOrDefault(x => x.Codigo.Equals(filtroDto.CodigoDre));

            if (dre == null)
            {
                throw new NegocioException($"Usuário não possui permissão para visualizar comunicados da DRE com codigo {filtroDto.CodigoDre}");
            }
        }
        public async Task <IActionResult> ObterDres([FromQuery] Modalidade?modalidade, [FromQuery] int periodo = 0, [FromQuery] int anoLetivo = 0)
        {
            var dres = await consultasAbrangencia.ObterDres(modalidade, periodo, ConsideraHistorico, anoLetivo);

            if (dres.Any())
            {
                return(Ok(dres));
            }

            return(StatusCode(204));
        }
        private async Task ValidarAbrangenciaDre(SolicitarInclusaoComunicadoEscolaAquiCommand comunicado)
        {
            var abrangenciaDres = await _consultasAbrangencia.ObterDres(null);

            var dre = abrangenciaDres.FirstOrDefault(x => x.Codigo.Equals(comunicado.CodigoDre));

            if (dre == null)
            {
                throw new NegocioException($"Usuário não possui permissão para enviar comunicados para a DRE com codigo {comunicado.CodigoDre}");
            }
        }
Esempio n. 5
0
        public async Task <IActionResult> ObterDres([FromQuery] Modalidade?modalidade)
        {
            var dres = await consultasAbrangencia.ObterDres(modalidade);

            if (dres.Any())
            {
                return(Ok(dres));
            }
            else
            {
                return(StatusCode(204));
            }
        }