public ItemDish MenuXmlToList(XElement doc) { //ПАПКИ с блюдами на тесте 62 папки var rootMenu = doc.Elements("ButtonName").Elements("ItemName").Elements("Наименование"); //Добавляем папки и детей foreach (var p in rootMenu) { var item = new ItemDish { Price = "This folder!", IdFather = "This folder!", Name = p.Value, Id = ((XElement)p.PreviousNode).Value }; Menu.Children.Add(item); GetChildren(((XElement)p).Value, doc); } return Menu; }
//Добавляет РОДИТЕЛЕЙ, id не добавляется protected void AddMenuCardXml(IEnumerable<XElement> list) { try { foreach (var p in list) { var node = new ItemDish { Id = ((XElement)p.PreviousNode).Value, Name = p.Value, IdFather = "This folder!", Marker = "ITEMNAME" }; Menu.Children.Add(node); GetChildren(node.Id, ComReader.BufferMenu); } } catch (Exception) { } }
public MenuXml() { CurrentNode = new Stack<List<Item>>(); Menu = new ItemDish(); }
private void AddDishToList(IEnumerable<XElement> elements) { foreach (var p in elements) { if (p.Parent == null) continue; var singleDish = new ItemDish { Id = ((XElement)p.PreviousNode.PreviousNode).Value, Name = p.Value, Price = ((XElement)p.PreviousNode).Value, IdFather = p.Parent.Descendants("IdItemName").First().Value, Marker = "ITEMCHILDREN" }; var pointer = GetElementAt(p, "Modifikators"); //Указатель на Modifikators try { while (p.Parent.Elements().ElementAt(pointer).Name == "Modifikators") { singleDish.Modifikators.Add(p.Parent.Elements().ElementAt(pointer).Attributes("МодификаторИД").First().Value, new ModificatorAttribute(){ Name = p.Parent.Elements().ElementAt(pointer).Attributes("Модификатор").First().Value, Required = p.Parent.Elements().ElementAt(pointer).Attributes("Обязательный").First().Value, Id = p.Parent.Elements().ElementAt(pointer).Attributes("МодификаторИД").First().Value }); pointer++; } } catch (Exception) { } Menu.Children.Add(singleDish); } }