public async Task <Response <IEnumerable <Postagem> > > ObterPostagensAsync(CategoriaPostagem categoria)
        {
            QueryRequest qryRequest = new QueryRequest
            {
                TableName = _context.TableName,
                KeyConditionExpression   = "#tipo = :tipo",
                ExpressionAttributeNames = new Dictionary <string, string> {
                    { "#tipo", "tipo" },
                    { "#id", "id" },
                    { "#dtAtualizacao", "dt-atualizacao" },
                    { "#autorId", "autor-id" },
                    { "#autorEmail", "autor-email" },
                    { "#ordem", "ordem" },
                    { "#titulo", "titulo" },
                    { "#texto", "texto" },
                    { "#imagemUrl", "url-imagem" },
                    { "#cat", "categoria" }
                },
                FilterExpression          = "#cat = :cat",
                ExpressionAttributeValues = new Dictionary <string, AttributeValue>
                {
                    { ":tipo", new AttributeValue {
                          S = "postagem"
                      } },
                    { ":cat", new AttributeValue {
                          S = categoria.ToString()
                      } },
                },
                ProjectionExpression = "#id, #ordem, #dtAtualizacao, #autorId,  #autorEmail, #titulo, #texto, #imagemUrl, #cat"
            };

            var           resp     = new Response <IEnumerable <Postagem> >();
            QueryResponse response = null;

            using (var client = this._context.GetClientInstance())
            {
                try
                {
                    response = await client.QueryAsync(qryRequest);

                    if (response.HttpStatusCode != HttpStatusCode.OK)
                    {
                        var msg = "Falha ao obter postagens.";
                        resp.ErrorMessages.Add(msg);
                        _logger.LogError(msg);
                    }
                }
                catch (Exception e)
                {
                    resp.ErrorMessages.Add(e.Message);
                    _logger.LogError(e.Message);
                }
            }

            List <Postagem> postagens = ExtractFileFrom(response.Items);

            resp.Return = postagens;
            return(resp);
        }
        public async Task <IActionResult> Get(CategoriaPostagem categoria)
        {
            var response = await _repository.ObterPostagensAsync(categoria);

            if (response.HasError)
            {
                return(BadRequest(response.ErrorMessages));
            }

            var lista = response
                        .Return
                        .Select(p => new PostagemViewModel {
                Id = p.Id,
                DataAtualizacao = p.DataAtualizacao,
                Titulo          = p.Titulo,
                Texto           = p.Texto,
                UrlImagem       = p.UrlImagem,
                Categoria       = p.Categoria
            }).ToList();

            return(Ok(lista));
        }