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);
        }
Пример #5
0
 public OrderTagGroup GetOrderTagGroupByName(string tagName)
 {
     return(OrderTagGroups.FirstOrDefault(x => x.Name == tagName));
 }
Пример #6
0
        public IEnumerable <OrderTagGroup> GetOrderTagGroupsForItems(IEnumerable <int> menuItemIds)
        {
            IEnumerable <OrderTagGroup> orderTags = OrderTagGroups.OrderBy(y => y.Order);

            return(menuItemIds.Aggregate(orderTags, GetOrderTagGroups));
        }