예제 #1
0
        //todo CLONE Получаем модификаторы из Dish
        private List<Modifikator> GetDishModifikators(string tag, List<Modifikator> currentModifikators)
        {
            var dish = _order.Dish[tag];
             //if (dish.IdDish != tag)
             //{
             //    var pp = "CLON"; //todo что т о надо делать
             //}

             if (dish.Modifikators.Count == 0) return currentModifikators;
             if (dish.Modifikators.Count == currentModifikators.Count) return dish.Modifikators;

             var curmodTemp = new List<Modifikator>();
             foreach (var p in currentModifikators)
             {
                 if (dish.Modifikators.Any(z => z.Id == p.Id))
                 {
                     var mod = new Modifikator { Id = p.Id, Name = p.Name, Check = true };
                     curmodTemp.Add(mod);
                 }
                 else curmodTemp.Add(p);
             }
             return curmodTemp;
        }
예제 #2
0
        //Получаем модификаторы из XML
        private List<Modifikator> GetXmlModifikators(string tag, List<Modifikator> currentModifikators)
        {
            var modif = new List<Modifikator>();
            var pointer = GetLineTag(_lineTag); //Указатель на  НомерСтроки
            try
            { //pointer + может вылететь за границы
                while (DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointer + 1).Attributes("Модификатор").First().Value == "Да")
                {
                    var mod = new Modifikator();
                    mod.Id = DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointer + 1).Attributes("ТоварИД").First().Value;
                    mod.Name = DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointer + 1).Attributes("Товар").First().Value;
                    if (DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointer + 1).Attributes("Модификатор").First().Value == "Да") mod.Check = true;
                    else mod.Check = false;
                    modif.Add(mod);
                    pointer++;
                }
            }
            catch (Exception)
            {
            }

            if(modif.Count == currentModifikators.Count) return modif;
            if (!modif.Any()) return currentModifikators;
            //К-во модификаторов, полученное из меню, может быть больше текущих

            var curmodTemp = new List<Modifikator>();
            foreach (var p in currentModifikators)
            {
                if (modif.Any(z => z.Id == p.Id))
                {
                    var mod = new Modifikator {Id = p.Id, Name = p.Name, Check = true};
                    curmodTemp.Add(mod);
                }
                else curmodTemp.Add(p);
            }
            return curmodTemp;
        }