private void OnFreeTagSelected(OrderTagGroupViewModel obj) { if (string.IsNullOrEmpty(obj.FreeTagName) || string.IsNullOrEmpty(obj.FreeTagName.Trim())) { return; } if (obj.OrderTags.Any(x => x.Name.ToLower() == obj.FreeTagName.ToLower())) { var b = obj.OrderTags.First(x => x.Name == obj.FreeTagName.ToLower()); OnOrderTagSelected(b); return; } var orderTagData = new OrderTagData { OrderTagGroup = obj.Model, SelectedOrderTag = new OrderTag { Name = obj.FreeTagName, Price = obj.FreeTagPrice }, Ticket = SelectedTicket }; obj.FreeTagName = ""; obj.FreeTagPriceStr = "0"; obj.CreateOrderTagButton(orderTagData); orderTagData.PublishEvent(RemoveMode ? EventTopicNames.OrderTagRemoved : EventTopicNames.OrderTagSelected, true); RemoveMode = false; OrderTagGroups.Where(x => x.OrderTags.Any(y => y.Name == obj.FreeTagName)).ToList().ForEach(x => x.Refresh()); }
private void ResetValues(Ticket selectedTicket) { SelectedTicket = null; SelectedOrder = null; SelectedItemPortions.Clear(); OrderTagGroups.Clear(); GroupedOrderTagGroups.Clear(); SetSelectedTicket(selectedTicket); }
private void OnOrderTagSelected(OrderTagButtonViewModel orderTag) { var mig = OrderTagGroups.First(propertyGroup => propertyGroup.OrderTags.Contains(orderTag)).Model; Debug.Assert(mig != null); var orderTagData = new OrderTagData { OrderTagGroup = mig, SelectedOrderTag = orderTag.Model, Ticket = SelectedTicket }; orderTagData.PublishEvent(RemoveMode ? EventTopicNames.OrderTagRemoved : EventTopicNames.OrderTagSelected, true); RemoveMode = false; OrderTagGroups.Where(x => x.OrderTags.Contains(orderTag)).ToList().ForEach(x => x.Refresh()); }
public bool ShouldDisplay(Ticket value, IEnumerable <Order> selectedOrders) { ResetValues(value); if (selectedOrders == null) { return(false); } var so = selectedOrders.ToList(); SelectedOrder = so.Count() == 1 ? so.ElementAt(0) : null; if (so.Any(x => x.Locked || !x.DecreaseInventory)) { return(false); } if (SelectedTicket != null && SelectedOrder != null) { var portions = _cacheService.GetMenuItemPortions(SelectedOrder.MenuItemId); if (SelectedOrder.PortionCount > 1) { SelectedItemPortions.AddRange(portions); } RaisePropertyChanged(nameof(IsPortionsVisible)); var orderTagGroups = _applicationState.GetOrderTagGroups(SelectedOrder.MenuItemId).Where(x => !x.Hidden).ToList(); OrderTagGroups.AddRange( orderTagGroups .Where(x => string.IsNullOrEmpty(x.GroupTag)) .Select(x => new OrderTagGroupViewModel(x, so))); if (SelectedOrder != null) { GroupedOrderTagGroups.AddRange( orderTagGroups .Where(x => !string.IsNullOrEmpty(x.GroupTag) && x.OrderTags.Count > 1) .GroupBy(x => x.GroupTag) .Select(x => new GroupedOrderTagViewModel(SelectedOrder, x))); } } return(SelectedItemPortions.Count > 1 || OrderTagGroups.Count > 0 || GroupedOrderTagGroups.Count > 0); }
public OrderTagGroup GetOrderTagGroupByName(string tagName) { return(OrderTagGroups.FirstOrDefault(x => x.Name == tagName)); }
public IEnumerable <OrderTagGroup> GetOrderTagGroupsForItems(IEnumerable <int> menuItemIds) { IEnumerable <OrderTagGroup> orderTags = OrderTagGroups.OrderBy(y => y.Order); return(menuItemIds.Aggregate(orderTags, GetOrderTagGroups)); }