public IActionResult Delete(string id) { try { var cliente = _clientesService.GetClienteById(id); if (cliente == null) { return(NotFound()); } var ret = _clientesService.GetProdutosByClienteId(id); foreach (var item in ret) { _clientesService.RemoveProduto(item.IdProduto, id); } _clientesService.DeleteCliente(cliente); return(NoContent()); } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } }
/// <summary> /// Um simples request para recuperar produtos e ao mesmo tempo marcar o que o cliente tem como favoritos /// </summary> /// <param name="pagination"></param> /// <param name="idCliente"></param> /// <returns></returns> public async Task <List <Produto> > GetProdutos(int pagination, string idCliente) { //primeiramente recupero os produtos da lista de favoritos var produtosFavoritosCliente = _clientesService.GetProdutosByClienteId(idCliente); List <string> ids = produtosFavoritosCliente.Select(_ => _.IdProduto).ToList(); String ret = string.Empty; List <Produto> result = new List <Produto>(); try { ListProducts list = null; HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://challenge-api.luizalabs.com/api/product/?page=" + pagination.ToString()); using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { ret = await reader.ReadToEndAsync(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(ListProducts)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(ret)); list = (ListProducts)serializer.ReadObject(ms); } if (list != null && list.products != null && list.products.Count > 0) { foreach (var item in list.products) { Produto p = new Produto(); p.IdProduto = item.id; p.Imagem = item.image; p.Preco = item.price; p.Titulo = item.title; //se o produto da lista da magalu estiver na lista de favoritos do cliente, setar favorito = true p.IsFavorito = ids.Contains(p.IdProduto); result.Add(p); } } } catch (Exception ex) { throw ex; } return(result); }