Beispiel #1
0
        /// <summary>
        /// Додати добавку
        /// </summary>
        /// <param name="additiv">Добавка</param>
        public bool AddAdditiv(IAdditiv additiv)
        {
            // якщо стаканчика немає, додавати нічого не можна
            if (!IsGlass)
            {
                return(false);
            }

            // необхідно не допустити переповнення стаканчика
            // розрахунок об'єму продукту який пробують додати
            double size = (additiv.TypeOfValue == TypeValue.Volume) ? additiv.Size : additiv.Size * 0.5;

            // якщо перший раз то ініціалізуємо
            additivs = additivs ?? new List <IAdditiv>();

            // якщо є вільне місце то додаємо продукт
            if (additivs.Count == 0)
            {
                if (Free >= size)
                {
                    additivs.Add(additiv);
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            // необхідно недопустити переповнення в наступних випадках
            if (Free >= size)
            {
                additivs.Add(additiv);
                return(true);
            }

            return(false);
        }
Beispiel #2
0
 /// <summary>
 /// Видалити 1 порцію добавки
 /// </summary>
 public void RemoveAdditiv(IAdditiv product)
 => additivs?.Remove(product);