private ModelPageCollectorSet[] getModelPages(ModelCollectorSet modelSet, ITitleLinkPair model)
        {
            ModelPageDocumentRequestor mpDR     = new ModelPageDocumentRequestor(new WebRequestor(), $"{baseUrl}{model.Link}");
            ModelPageParser            mpParser = new ModelPageParser(mpDR);

            string[] modelPages = mpParser.Parse();

            List <ModelPageCollectorSet> modelPageSets = new List <ModelPageCollectorSet>();

            foreach (var modelPage in modelPages)
            {
                ModelPageCollectorSet modelPageSet = new ModelPageCollectorSet();

                ModelDetailDocumentRequestor mdDR     = new ModelDetailDocumentRequestor(new WebRequestor(), $"{baseUrl}{modelPage}");
                ModelDetailParser            mdParser = new ModelDetailParser(mdDR);
                ModelPageModel modelPageModel         = mdParser.Parse();
                modelPageSet.Data = mdDR;

                modelPageSet.Parent  = modelSet;
                modelPageSet.Subsets = getModelDetails(modelPageSet, modelPageModel);
                modelPageSets.Add(modelPageSet);
            }

            return(modelPageSets.ToArray());
        }
        private void createPlanForVehicleType(ITitleLinkPair vehicleType)
        {
            // web request - producers
            VehicleTypeDocumentRequestor dr     = new VehicleTypeDocumentRequestor(new WebRequestor(), vehicleType.Link);
            VehicleTypeParser            parser = new VehicleTypeParser(dr);

            ITitleLinkPair[] producers = parser.Parse();
            vehicleTypeProducers.Add(vehicleType.Title, producers);
        }
 public override void CreatePlan()
 {
     // manndb spesific execution plan...
     // web request - vehicle types
     vehicleTypes = parserInitialPage.Parse();
     if (vehicleType == null)
     {
         createPlanForAllVehicleTypes();
     }
     else
     {
         ITitleLinkPair pair = vehicleTypes[(int)vehicleType];
         createPlanForVehicleType(pair);
     }
 }
        private ModelCollectorSet[] getModels(ProducerCollectorSet producerSet, ITitleLinkPair producer)
        {
            ModelDocumentRequestor modelDR     = new ModelDocumentRequestor(new WebRequestor(), $"{baseUrl}{producer.Link}");
            ModelParser            modelParser = new ModelParser(modelDR);

            ITitleLinkPair[] models = modelParser.Parse();

            List <ModelCollectorSet> modelSets = new List <ModelCollectorSet>();

            foreach (var model in models)
            {
                ModelCollectorSet modelSet = new ModelCollectorSet();
                modelSet.Data    = model.Title;
                modelSet.Parent  = producerSet;
                modelSet.Subsets = getModelPages(modelSet, model);
                modelSets.Add(modelSet);
            }

            return(modelSets.ToArray());
        }