예제 #1
0
        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 }));
            }
        }
예제 #2
0
        /// <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);
        }