//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; }
//Получаем модификаторы из 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; }