public async Task <IActionResult> VistaProducto(string sku) { var token = HttpContext.Session.GetString("token"); Productos producto; producto = await _apiClient.getProducto(sku, token); return(View(producto)); }
// Pedidos _miPedido; #region --METODOS PUBLICOS-- public async Task <IActionResult> AddProducto(string sku, int cantidad, string returnUrl) { Pedidos _pedido = new Pedidos(); List <Pedidos> _pedidosCarro = new List <Pedidos>(); try { //SI EXISTE CARRO EN SESSION this._miCarro = JsonConvert.DeserializeObject <Carros>(HttpContext.Session.GetString("carrito")); } catch (Exception e) { //SI NO this._miCarro.Pedidos = _pedidosCarro; } var token = HttpContext.Session.GetString("token"); Productos producto = await _apiClient.getProducto(sku, token); if (this._miCarro.Pedidos.Count == 0) //SI ESTA VACIO { _pedido.ProductoPOJO = producto; _pedido.Unidades = cantidad; _pedido.PrecioTotal = producto.precio * cantidad; _pedido.PrecionUnitario = producto.precio; this._miCarro.Pedidos.Add(_pedido); } else //SI YA HAY ITEMS { _pedido.ProductoPOJO = producto; _pedido.Unidades = cantidad; _pedido.PrecioTotal = producto.precio * cantidad; _pedido.PrecionUnitario = producto.precio; if ((this._miCarro.Pedidos.FirstOrDefault(x => x.ProductoPOJO.sku == producto.sku)) != null) //si ya existe ese item en el carro { var aux = this._miCarro.Pedidos.Find(x => x.ProductoPOJO.sku == sku); aux.Unidades += cantidad; aux.PrecioTotal = aux.Unidades * aux.PrecionUnitario; } else { this._miCarro.Pedidos.Add(_pedido); } } ViewBag.Productos = JsonConvert.DeserializeObject <List <Productos> >(HttpContext.Session.GetString("productos")); ViewBag.Carrito = this._miCarro; HttpContext.Session.SetString("carrito", JsonConvert.SerializeObject(this._miCarro)); return(Redirect(returnUrl)); }