using System.Collections.Generic; namespace Bücherwurm { class Inventory { private List InventoryList {get; set;} private int NextId {get; set;} public Inventory(){ InventoryList = new List(); NextId = 1; } public void Add(IProduct Book) { InventoryList.Add(new Item(NextId, Book.ProductId)); NextId = NextId + 1; } public void Add(int BookId) { InventoryList.Add(new Item(NextId, BookId)); NextId = NextId + 1; } public void Remove(int Id) { InventoryList.RemoveAll(item => item.ItemId == Id); } public void ProductRemove(int ProdId) { InventoryList.RemoveAll(item => item.ProdId == ProdId); } public List GetInventory() { return InventoryList; } public bool IsInInventory(int Id) { return (InventoryList.Find(item => item.ItemId == Id) != null); } public bool IsAvailable(int ItemId) { return (InventoryList.Find(item => item.ItemId == ItemId && item.Status == StatusEnum.Available) != null); } public List IsProductAvailable(int ProdId) { var items = InventoryList.FindAll(item => item.ProdId == ProdId && item.Status == StatusEnum.Available); var ret = new List(); foreach (var item in items) { ret.Add(item.ItemId); } if (ret.Count == 0) { return null; } else { return ret; } } public Item LookupItem(int ItemId) { return InventoryList.Find(item => ItemId == item.ItemId); } public void MarkAsLended(int ItemId) { InventoryList[InventoryList.FindIndex(item => item.ItemId == ItemId)].Status = StatusEnum.Lended; } public void MarkAsAvailable(int ItemId) { InventoryList[InventoryList.FindIndex(item => item.ItemId == ItemId)].Status = StatusEnum.Available; } } }