Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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--;
                    }
                }
            }
        }