Пример #1
0
 /// <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.");
     }
 }
Пример #2
0
        /// <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");
            }
        }