private void OnPropertySelected(MenuItemProperty obj) { var mig = SelectedItemPropertyGroups.FirstOrDefault(propertyGroup => propertyGroup.Properties.Contains(obj)); Debug.Assert(mig != null); if (_removeModifier) { if (mig.ForceValue && SelectedItem.Properties.Count(x => x.Model.PropertyGroupId == mig.Id) < 2) { InteractionService.UserIntraction.GiveFeedback(string.Format(Resources.SelectionRequired_f, mig.Name)); } else { SelectedItem.RemoveProperty(mig, obj); } } else { SelectedItem.ToggleProperty(mig, obj); } SelectedTicket.RefreshVisuals(); SelectedTicket.RecalculateTicket(); if (_removeModifier) { OnRemoveModifier(""); } RaisePropertyChanged("IsRemoveModifierButtonVisible"); }
public TicketItemProperty ToggleProperty(MenuItemPropertyGroup group, MenuItemProperty menuItemProperty) { var ti = _model.ToggleProperty(group, menuItemProperty); if (ti != null) { RuleExecutor.NotifyEvent(RuleEventNames.ModifierSelected, new { Ticket = AppServices.MainDataContext.SelectedTicket, TicketItem = Model, TicketTag = AppServices.MainDataContext.SelectedTicket.Tag, MenuItemName = _model.MenuItemName, ModifierGroupName = group.Name, ModifierName = menuItemProperty.Name, ModifierPrice = ti.PropertyPrice.Amount + ti.VatAmount, ModifierQuantity = ti.Quantity, IsRemoved = !_model.Properties.Contains(ti), IsPriceAddedToParentPrice = ti.CalculateWithParentPrice, TotalPropertyCount = Model.Properties.Count, TotalModifierQuantity = Model.Properties.Where(x => x.PropertyGroupId == group.Id).Sum(x => x.Quantity), TotalModifierPrice = Model.Properties.Where(x => x.PropertyGroupId == group.Id).Sum(x => x.PropertyPrice.Amount + x.VatAmount) }); } RefreshProperties(); RaisePropertyChanged("Properties"); RaisePropertyChanged("TotalPrice"); RaisePropertyChanged("Quantity"); return(ti); }
public MenuItemPropertyViewModel(MenuItemProperty model) { Model = model; if (string.IsNullOrEmpty(model.Name)) { model.Name = string.Format("[{0}]", Resources.NewProperty); } UpdateMenuItem(model.MenuItemId); }
public void RemoveProperty(MenuItemPropertyGroup mig, MenuItemProperty menuItemProperty) { var p = Model.Properties.Where(x => x.PropertyGroupId == mig.Id && x.Name == menuItemProperty.Name && (x.VatAmount + x.PropertyPrice.Amount) == menuItemProperty.Price.Amount).FirstOrDefault(); if (p != null) { Model.Properties.Remove(p); } RefreshProperties(); RaisePropertyChanged("Properties"); RaisePropertyChanged("TotalPrice"); RaisePropertyChanged("Quantity"); }
public void Setup() { _shimObject = ShimsContext.Create(); _menuBuilderObject = new MenuPropertyBuilderForm(); _menuBuilderPrivateObject = new PrivateObject(_menuBuilderObject); _propertyGridMenu = (WinForms.PropertyGrid)_menuBuilderPrivateObject.GetField("_pgMenu"); _menuItemProperty = new MenuItemProperty(); _treeViewMenu = (WinForms.TreeView)_menuBuilderPrivateObject.GetField("_tvMenu"); _btnMoveUp = (ButtonXP)_menuBuilderPrivateObject.GetField("_bMoveUp"); _btnMoveDown = (ButtonXP)_menuBuilderPrivateObject.GetField("_bMoveDown"); _btnChildSibling = (ButtonXP)_menuBuilderPrivateObject.GetField("_bChildSibling"); _btnSiblingParent = (ButtonXP)_menuBuilderPrivateObject.GetField("_bSlibingParent"); _btnAddChild = (ButtonXP)_menuBuilderPrivateObject.GetField("_bAddChild"); _btnRemoveNode = (ButtonXP)_menuBuilderPrivateObject.GetField("_bRemoveNode"); }
public void UpdateNextProperty(MenuItemProperty current) { CurrentProperty = current; if (CurrentProperty != null && CurrentProperty.Name.ToLower() == "x") { CurrentProperty = null; } NextProperty = MenuItemPropertyGroup.Properties.First(); var selected = _selectedItem.Properties.FirstOrDefault(x => x.Model.PropertyGroupId == MenuItemPropertyGroup.Id); var selectedPropertyName = selected != null ? selected.Model.Name : ""; if (!string.IsNullOrEmpty(selectedPropertyName)) { CurrentProperty = MenuItemPropertyGroup.Properties.FirstOrDefault(x => x.Name == selectedPropertyName); var nProp = MenuItemPropertyGroup.Properties.SkipWhile(x => x.Name != selectedPropertyName).Skip(1).FirstOrDefault(); if (nProp != null) { NextProperty = nProp; } } Name = CurrentProperty != null ? CurrentProperty.Name : MenuItemPropertyGroup.Name; }
private TicketItemProperty FindProperty(MenuItemProperty property) { return(Properties.FirstOrDefault(x => x.Name == property.Name && (x.PropertyPrice.Amount + x.VatAmount) == property.Price.Amount)); }
public TicketItemProperty ToggleProperty(MenuItemPropertyGroup group, MenuItemProperty property) { if (property.Name.ToLower() == "x") { var groupItems = Properties.Where(x => x.PropertyGroupId == group.Id).ToList(); foreach (var tip in groupItems) { Properties.Remove(tip); } if (group.MultipleSelection) { Quantity = 1; } return(null); } var ti = FindProperty(property); if (ti == null) { ti = new TicketItemProperty { Name = property.Name, PropertyPrice = new Price { Amount = property.Price.Amount, CurrencyCode = property.Price.CurrencyCode }, PropertyGroupId = group.Id, MenuItemId = property.MenuItemId, CalculateWithParentPrice = group.CalculateWithParentPrice, PortionName = PortionName, Quantity = group.MultipleSelection ? 0 : 1 }; if (VatIncluded && VatRate > 0) { ti.PropertyPrice.Amount = ti.PropertyPrice.Amount / ((100 + VatRate) / 100); ti.PropertyPrice.Amount = decimal.Round(ti.PropertyPrice.Amount, 2); ti.VatAmount = property.Price.Amount - ti.PropertyPrice.Amount; } else if (VatRate > 0) { ti.VatAmount = (property.Price.Amount * VatRate) / 100; } else { ti.VatAmount = 0; } } if (group.SingleSelection || !string.IsNullOrEmpty(group.GroupTag)) { var tip = Properties.FirstOrDefault(x => x.PropertyGroupId == group.Id); if (tip != null) { Properties.Insert(Properties.IndexOf(tip), ti); Properties.Remove(tip); } } else if (group.MultipleSelection) { ti.Quantity++; } else if (!group.MultipleSelection && Properties.Contains(ti)) { Properties.Remove(ti); _lastSelectedProperty = ti; return(ti); } if (!Properties.Contains(ti)) { Properties.Add(ti); } _lastSelectedProperty = ti; return(ti); }
public MenuItemPropertyViewModel(MenuItemProperty model) { Model = model; }