private void LinkChilds(OfferCategory category, AllOffers offers) { foreach (var child in category.Childs) { child.Offers.Clear(); foreach (var offer in offers.Offers.Where(offer => offer.CategoryId == child.Id)) { child.Offers.Add(offer); } LinkChilds(child, offers); } }
private void AddChilds(OfferCategory category, TreeNode node) { foreach (var child in category.Childs) { var childNode = new TreeNode(child.Name) { Tag = child }; node.Nodes.Add(childNode); AddChilds(child, childNode); } }
public void Load(XElement categories) { Categories.Clear(); var count = categories.Elements().Count(); // читаем корневые категории foreach (var categoryElement in categories.Elements().Where(item => item.Attribute("parentId") == null || string.IsNullOrWhiteSpace(item.Attribute("parentId").Value))) { var offcat = new OfferCategory() { Id = categoryElement.Attribute("id").Value, Name = categoryElement.Value }; Categories.Add(offcat); count--; } while (count > 0) { // читаем дочерние категории foreach (var categoryElement in categories.Elements().Where(item => item.Attribute("parentId") != null && !string.IsNullOrWhiteSpace(item.Attribute("parentId").Value))) { var parentId = categoryElement.Attribute("parentId").Value; var parent = Categories.FirstOrDefault(item => item.Id == parentId); if (parent != null) { var offcat = new OfferCategory() { Id = categoryElement.Attribute("id").Value, ParentId = parentId, Name = categoryElement.Value }; parent.Childs.Add(offcat); count--; } } } }