// This is instead of the RemoveProduct method in the specification protected override void RemoveItem(int index) { BasketItem item = base.Items[index]; if (item.Offer != null) { item.Offer.Products.Remove(item.ProductID); item.Offer.Quantity -= item.Quantity; OfferList.Remove(item); } base.RemoveItem(index); }
// This is instead of the ClearBasket method in the specification protected override void ClearItems() { foreach (BasketItem item in base.Items) { if (item.Offer != null) { item.Offer.Products.Remove(item.ProductID); item.Offer.Quantity -= item.Quantity; OfferList.Clear(); } } base.ClearItems(); }
// This is instead of the AddProduct method in the specification protected override void InsertItem(int index, BasketItem item) { // If the Keyed Collection already has the product // then just increment its quantity if (this.Contains(item.ProductID)) { this[item.ProductID].Quantity += item.Quantity; OfferList.Add(item); OfferList.CalculateOffers(this); } else { base.InsertItem(index, item); OfferList.Add(item); OfferList.CalculateOffers(this); } }