public async Task <ComunicadoCompletoDto> BuscarPorIdAsync(long id)
        {
            var comunicado = await repositorio.ObterPorIdAsync(id);

            if (comunicado.Excluido)
            {
                throw new NegocioException("Não é possivel acessar um registro excluido");
            }

            comunicado.Alunos = (await repositorioComunicadoAluno.ObterPorComunicado(comunicado.Id)).ToList();

            comunicado.Turmas = (await repositorioComunicadoTurma.ObterPorComunicado(comunicado.Id)).ToList();

            comunicado.Grupos = (await repositorioComunicadoGrupo.ObterPorComunicado(comunicado.Id)).ToList();

            var dto = (ComunicadoCompletoDto)comunicado;

            dto.Grupos = (await consultaGrupoComunicacao.Listar(comunicado.Grupos.Select(x => x.GrupoComunicadoId))).ToList();

            await ValidarAbrangenciaUsuario(dto);

            return(dto);
        }
예제 #2
0
        public async Task <ComunicadoCompletoDto> Handle(ObterComunicadoPorIdQuery request, CancellationToken cancellationToken)
        {
            var comunicado = await _repositorioComunicado.ObterPorIdAsync(request.Id);

            if (comunicado.Excluido)
            {
                throw new NegocioException("Não é possivel acessar um registro excluido");
            }

            comunicado.Alunos = (await _repositorioComunicadoAluno.ObterPorComunicado(comunicado.Id)).ToList();

            comunicado.Turmas = (await _repositorioComunicadoTurma.ObterPorComunicado(comunicado.Id)).ToList();

            comunicado.Grupos = (await _repositorioComunicadoGrupo.ObterPorComunicado(comunicado.Id)).ToList();

            var dto = (ComunicadoCompletoDto)comunicado;

            dto.Grupos = (await _consultaGrupoComunicacao.Listar(comunicado.Grupos.Select(x => x.GrupoComunicadoId))).ToList();

            await ValidarAbrangenciaUsuario(dto);

            return(dto);
        }