public async Task <CartDTO> UpdateAsync(ProductCartPutRequest model, ApiDbContext apiDbContext)
        {
            try
            {
                List <User_Product_Cart> userCartList = apiDbContext.Users_Products_Cart.Where(pc => !pc.IsCompleted && pc.UserId == model.UserId).ToList();
                if (userCartList == null)
                {
                    throw new Exception($"Error cargadndo el carro del usuario con id {model.UserId}");
                }

                User_Product_Cart cartLine = await apiDbContext.Users_Products_Cart.FindAsync(model.Id);

                if (cartLine == null)
                {
                    throw new Exception($"Error cargadndo la línea del producto con id {model.ProductId} del carro del usuario con id {model.UserId}");
                }

                cartLine.Quantity = model.Quantity;

                if (cartLine.Quantity == 0)
                {
                    apiDbContext.Users_Products_Cart.Remove(cartLine);
                }

                await apiDbContext.SaveChangesAsync();

                return(ModelToDTO(apiDbContext.Users_Products_Cart.Where(pc => !pc.IsCompleted && pc.UserId == model.UserId).ToList()));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
Exemple #2
0
        public async Task <IActionResult> Update(ProductCartPutRequest model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception("Petición de actualización inválida");
                }

                return(Ok(await _cartService.UpdateAsync(model, _apiDbContext)));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }