public IHttpActionResult UpdateQty(AddBasketItemModel model) { var basket = this.CustomerContext.CurrentCustomer.Basket(); var exists = basket.Items.FirstOrDefault(item => item.Key == model.Key); if (exists != null) { if (model.Quantity.HasValue && model.Quantity > 0) { basket.UpdateQuantity(exists.Key, model.Quantity.Value); } else { basket.RemoveItem(model.Key); } basket.Save(); } return(this.GetBasket()); }
public IHttpActionResult AddToBasket(AddBasketItemModel model) { var product = this.Helper.Query.Product.GetByKey(model.Key); var qty = !model.Quantity.HasValue || model.Quantity <= 0 ? 1 : model.Quantity.Value; var basket = this.CustomerContext.CurrentCustomer.Basket(); if (product != null) { var exists = basket.Items.FirstOrDefault(item => item.ExtendedData["merchProductKey"] == model.Key.ToString()); if (exists == null) { basket.AddItem(product, qty); } else { basket.UpdateQuantity(exists.Key, exists.Quantity + qty); } } else { var variant = this.Helper.Query.Product.GetProductVariantByKey(model.Key); if (variant == null) { return(NotFound()); } var exists = basket.Items.FirstOrDefault(item => item.ExtendedData["merchProductVariantKey"] == model.Key.ToString()); if (exists == null) { basket.AddItem(variant, qty); } else { basket.UpdateQuantity(exists.Key, exists.Quantity + qty); } } basket.Save(); return(this.GetBasket()); }