public void AddItemToCatalogue(VendingItem item) { if (_catalogue.ContainsKey(item.Id.Value)) { if (_catalogue[item.Id.Value].Equals(item)) { LogWarning($"Catalogue already contains item ID {item.Id.Value} Item {item}"); } else { string message = $"Catalogue contains different items with same ID {item.Id.Value}"; LogError(message); throw new ArgumentException(message); } } else { Log($"Added item {item} with ID {item.Id.Value}"); _catalogue.Add(item.Id.Value, item); } }