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); }
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); }