internal void RemoveModifierItem(ModifierItemModel modifierItem) { modifierItem.Parent = null; modifiers.Remove(modifierItem); if (parent != null) { parent.RebuildItems(); } }
internal void AddModifierItem(ModifierItemModel modifierItem) { modifierItem.Parent = this; modifiers.Add(modifierItem); if (parent != null) { parent.RebuildItems(); } }
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); } }
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); } }