using System.Collections.Generic;
public List<BasketItem> items { get; set; }
items = new List<BasketItem>();
public void AddItem(string productCode, int quantity )
items.Add(new BasketItem(productCode, quantity));
public void RemoveItem(string productCode, int quantity )
var index = items.FindIndex(i => i.ProductCode == productCode);
public string ProductCode { get; set; }
public int Quantity { get; set; }
public BasketItem(string productCode, int quantity)
ProductCode = productCode;
public class BasketService
public BasketRepository BasketRepositoryy { get; set; }
BasketRepositoryy = new BasketRepository();
public void AddItem(string productCode, int quantity )
BasketRepositoryy.AddItem(productCode, quantity);
public void RemoveItem(string productCode, int quantity )
BasketRepositoryy.RemoveItem(productCode, quantity);
public List<BasketItem> GetList()
return BasketRepositoryy.GetList();
public class BasketRepository
public List<BasketItem> items { get; set; }
public BasketRepository()
items = new List<BasketItem>();
public void AddItem(string productCode, int quantity )
items.Add(new BasketItem(productCode, quantity));
public void RemoveItem(string productCode, int quantity )
var index = items.FindIndex(i => i.ProductCode == productCode);
public List<BasketItem> GetList()
public static void Main()
Basket bas = new Basket();
bas.AddItem("Water 100ml", 10);
bas.AddItem("Mars", 100);
bas.AddItem("Lays 500g", 100);
bas.items.ForEach(i => Console.Write("{0}\t", i.ProductCode));
bas.RemoveItem("Mars", 100);
bas.items.ForEach(i => Console.Write("{0}\t", i.ProductCode));
Console.Write("||||||||||||||||||||||||||||||||||||||");
BasketService basService = new BasketService();
basService.AddItem("Water 100ml", 10);
basService.AddItem("Mars", 100);
basService.AddItem("Lays 500g", 100);
basService.GetList().ForEach(i => Console.Write("{0}\t", i.ProductCode));
basService.RemoveItem("Mars", 100);
basService.GetList().ForEach(i => Console.Write("{0}\t", i.ProductCode));