private void ExtractProducts(NodeContent parent, IExtractedContentHandler contentHandler)
 {
     foreach (var product in BatchedChildren <ProductContent>(parent.ContentLink))
     {
         contentHandler.OnProductContent(parent, product);
     }
 }
        public void Extract(IExtractedContentHandler contentHandler)
        {
            contentHandler.OnBeginExtraction();

            var rootCatalog = GetRootCatalog();

            ExtractNode(rootCatalog, contentHandler);

            contentHandler.OnFinishExtraction();
        }
        private void ExtractNode(NodeContentBase parentNode, IExtractedContentHandler contentHandler)
        {
            if (parentNode == null)
            {
                return;
            }

            foreach (var child in BatchedChildren <NodeContent>(parentNode.ContentLink))
            {
                contentHandler.OnNodeContent(child, parentNode);
                ExtractNode(child, contentHandler);
                ExtractProducts(child, contentHandler);
            }
        }
 public VueStorefrontExportJob(IContentExtractor vsfExporter, IExtractedContentHandler contentHandler)
 {
     _vsfExporter    = vsfExporter;
     _contentHandler = contentHandler;
 }