Exemplo n.º 1
0
 // коллекция разрешенных состояний для фильтра
 public void SetAllowedStatuses(KDSUserStatesSet statesSet)
 {
     _allowedStatuses.Clear();
     // для фильтра берем список Ид состояний
     _allowedStatuses = statesSet.States.Select(s => (int)s).ToList();
 }
Exemplo n.º 2
0
        }  // method

        // пользовательские наборы состояний для их фильтрации
        public static List <KDSUserStatesSet> CreateUserStatesList(List <OrderStatusEnum> statesList)
        {
            if ((statesList == null) || (statesList.Count < 2))
            {
                return(null);
            }

            List <KDSUserStatesSet> retVal = new List <Model.KDSUserStatesSet>();

            KDSUserStatesSet curSet;
            int   initIdx; // начальный индекс
            Brush bBrush, fBrush;

            // отсортировать по значению перечисления
            //List<OrderStatusEnum> sortedStates = statesList.OrderBy(s => (int)s).ToList();

            // если есть состояния Ожидание и Готовка, то объединить их в один набор "В процессе"
            if ((statesList.Count >= 2) && (statesList[0] == OrderStatusEnum.WaitingCook) && (statesList[1] == OrderStatusEnum.Cooking))
            {
                StateGraphHelper.SetStateButtonBrushes(OrderStatusEnum.Cooking, out bBrush, out fBrush);
                curSet = new KDSUserStatesSet()
                {
                    Name = "В процессе", BackBrush = bBrush, FontBrush = fBrush
                };
                curSet.States.AddRange(new[] { OrderStatusEnum.WaitingCook, OrderStatusEnum.Cooking });

                retVal.Add(curSet);
                initIdx = 2;
            }
            else
            {
                initIdx = 0;
            }

            // добавить состояния по одному
            string tabName;

            for (int i = initIdx; i < statesList.Count; i++)
            {
                OrderStatusEnum curState = statesList[i];
                StateGraphHelper.SetStateButtonBrushes(curState, out bBrush, out fBrush);
                tabName = StateGraphHelper.GetStateTabName(curState);

                curSet = new KDSUserStatesSet()
                {
                    Name = tabName, BackBrush = bBrush, FontBrush = fBrush
                };
                curSet.States.Add(curState);

                retVal.Add(curSet);
            }

            // первый элемент - все состояния, если есть более одного состояния в списке
            if (statesList.Count > 1)
            {
                curSet = new KDSUserStatesSet()
                {
                    Name      = "Все статусы",
                    BackBrush = new SolidColorBrush(Colors.MediumSeaGreen),
                    FontBrush = new SolidColorBrush(Colors.Navy)
                };
                curSet.States.AddRange(statesList);
                // и удалить, если есть, Выдано
                if (curSet.States.Contains(OrderStatusEnum.Took))
                {
                    curSet.States.Remove(OrderStatusEnum.Took);
                }

                retVal.Insert(0, curSet);
            }

            // список из менее 2-х элементов не рассматриваем
            return((retVal.Count < 2) ? null : retVal);
        }