Exemplo n.º 1
0
        public async Task <IEnumerable <DadosDeLeituraDoComunicadoDto> > Handle(ObterDadosDeLeituraDeComunicadosQuery request, CancellationToken cancellationToken)
        {
            if (!await repositorioComunicado.Exists(request.ComunicadoId))
            {
                throw new NegocioException("O comunicado informado não existe. Por favor tente novamente.", HttpStatusCode.BadRequest);
            }

            var httpClient = httpClientFactory.CreateClient("servicoAcompanhamentoEscolar");
            var url        = new StringBuilder(BaseUrl);

            url.Append(@"?notificacaoId=" + request.ComunicadoId);
            url.Append(@"&modoVisualizacao=" + request.ModoVisualizacao);
            if (!string.IsNullOrEmpty(request.CodigoDre))
            {
                url.Append(@"&codigoDre=" + request.CodigoDre);

                if (!string.IsNullOrEmpty(request.CodigoUe))
                {
                    url.Append(@"&codigoUe=" + request.CodigoUe);
                }
            }

            var resposta = await httpClient.GetAsync($"{url}", cancellationToken);

            if (!resposta.IsSuccessStatusCode || resposta.StatusCode == HttpStatusCode.NoContent)
            {
                throw new NegocioException("Não foram encontrados dados de leitura de comunicados.", HttpStatusCode.InternalServerError);
            }

            var json = await resposta.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <IEnumerable <DadosDeLeituraDoComunicadoDto> >(json));
        }
        public async Task <IEnumerable <DadosLeituraAlunosComunicadoPorTurmaDto> > Handle(ObterDadosDeLeituraDeComunicadosPorAlunosDaTurmaQuery request, CancellationToken cancellationToken)
        {
            if (!await repositorioComunicado.Exists(request.ComunicadoId))
            {
                throw new NegocioException("O comunicado informado não existe. Por favor tente novamente.", HttpStatusCode.BadRequest);
            }

            var httpClient = httpClientFactory.CreateClient("servicoAcompanhamentoEscolar");
            var url        = new StringBuilder("/api/v1/dashboard/leitura/alunos");

            url.Append(@"?notificacaoId=" + request.ComunicadoId);
            url.Append(@"&codigoTurma=" + request.CodigoTurma);

            var resposta = await httpClient.GetAsync($"{url}", cancellationToken);

            if (!resposta.IsSuccessStatusCode || resposta.StatusCode == HttpStatusCode.NoContent)
            {
                throw new NegocioException("Não foi possível obter dados de de leitura de comunicados pelo aplicativo.", HttpStatusCode.InternalServerError);
            }

            var json = await resposta.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <IEnumerable <DadosLeituraAlunosComunicadoPorTurmaDto> >(json));
        }