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