/// <summary> /// Denne metode bliver kaldt når publisheren trigger en event. /// </summary> /// <param name="sender">Objectet som notificerer observeren. Publisher'en.</param> /// <param name="e">Event parametre. Formodeligt af type OnLowStockEventArgs.</param> public void StockLow(object sender, EventArgs e) { if (e.GetType() == typeof(OnLowStockEventArgs)) { OnLowStockEventArgs ActualE = (OnLowStockEventArgs)e; Console.WriteLine("ADVARSEL lav varebehold af " + ActualE.Name + ". Kun " + ActualE.LeftInStock + " tilbage."); } }
/// <summary> /// Fjerner et antal varer fra lagerlisten. /// </summary> /// <param name="name">navnet på varen der skal fjernes.</param> /// <param name="amount">Antallet af varen der skal fjernes.</param>6 /// <exception cref="Exception">Mere end en type vare med det navn.</exception> /// <exception cref="ArgumentExeption">Kunne ikke finde en vare med det navn.</exception> public void Remove(string name, int amount) { //Tjek om varen allerede findes i listen var items = _stock.Where(s => s.Item.Name == name); if (items.Count() > 1) { throw new Exception("Mere end en type vare med det modelnavn"); } //Fjerner varen if (items.Count() == 1) { items.ElementAt(0).Amount -= amount; if (items.ElementAt(0).Amount < items.ElementAt(0).LowStockThreshold) { EventArgs e = new OnLowStockEventArgs(items.ElementAt(0).Amount, items.ElementAt(0).Item.Name); OnLowStock(e); } } else { throw new ArgumentException("item", "Varen findes ikke i systemet"); } }