Exemplo n.º 1
0
        internal void RemoveModifierItem(ModifierItemModel modifierItem)
        {
            modifierItem.Parent = null;
            modifiers.Remove(modifierItem);

            if (parent != null)
            {
                parent.RebuildItems();
            }
        }
Exemplo n.º 2
0
        internal void AddModifierItem(ModifierItemModel modifierItem)
        {
            modifierItem.Parent = this;
            modifiers.Add(modifierItem);

            if (parent != null)
            {
                parent.RebuildItems();
            }
        }
Exemplo n.º 3
0
        private void ButtonAddModifierItemClick(object sender, RoutedEventArgs e)
        {
            var selectedItem = lstModifiers.SelectedItem;

            if (selectedItem == null)
            {
                return;
            }

            IProduct modifierDish;
            bool     isChildModifier;

            var childModifier = selectedItem as IChildModifier;

            if (childModifier != null)
            {
                Debug.Assert(childModifier.Product.Type == ProductType.Modifier);
                modifierDish    = childModifier.Product;
                isChildModifier = true;
            }
            else
            {
                var simpleModifier = (ISimpleModifier)selectedItem;
                modifierDish    = simpleModifier.Product;
                isChildModifier = false;
            }

            var selectedProductItem = GetSelectedProductItem();

            Debug.Assert(selectedProductItem != null);

            var existingModifier = selectedProductItem.Children
                                   .SingleOrDefault(m => m.IsChildModifier == isChildModifier && m.Dish.Id == modifierDish.Id);


            if (existingModifier != null)
            {
                existingModifier.Amount++;
            }
            else
            {
                var modifierItemModel = new ModifierItemModel
                {
                    Dish            = modifierDish,
                    Amount          = 1,
                    IsChildModifier = isChildModifier
                };
                selectedProductItem.AddModifierItem(modifierItemModel);
            }
        }
Exemplo n.º 4
0
        public ProductItemModel([NotNull] IPreliminaryOrderProductItem productItem)
            : this(productItem.Dish, productItem.Amount, productItem.ProductSize)
        {
            Debug.Assert(productItem != null);

            modifiers.Clear();
            foreach (var modifier in productItem.Modifiers)
            {
                var modifierItemModel = new ModifierItemModel();
                modifierItemModel.Update(modifier);
                modifierItemModel.Parent = this;
                modifiers.Add(modifierItemModel);
            }
        }