Aqueduct.SitecoreLib.TreeCrawler.Crawl C# (CSharp) Метод

Crawl() публичный Метод

public Crawl ( Action actionOnItem, Predicate shouldUseItem ) : void
actionOnItem Action
shouldUseItem Predicate
Результат void
        public void Crawl(Action<Item> actionOnItem, Predicate<Item> shouldUseItem)
        {
            Item startItem = _database.GetItem(_startPath);

            if (startItem == null)
                throw new InvalidOperationException("No item exists at path: " + _startPath);

            Queue<Item> queue = new Queue<Item>();
            queue.Enqueue(startItem);

            while(queue.Count > 0)
            {
                var item = queue.Dequeue();
                
                if (item.HasChildren)
                    foreach (Item child in item.Children)
                        queue.Enqueue(child);

                if(shouldUseItem(item))
                    actionOnItem(item);
            }
        }
    }