private FilterNodeModel addFilterInfo(ModelDetailDocumentRequestor mdDR, FilterTypes filterType)
        {
            FilterNodeParser fnParser = new FilterNodeParser(mdDR, filterType);
            FilterNodeModel  fnModel  = fnParser.Parse();

            return(fnModel);
        }
        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 addFilters(ModelPageCollectorSet modelPageSet, RowModel rm)
        {
            ModelDetailDocumentRequestor mdDR = (ModelDetailDocumentRequestor)modelPageSet.Data;
            FilterNodeModel fnModelAir        = addFilterInfo(mdDR, FilterTypes.Air);

            if (!String.IsNullOrEmpty(fnModelAir.Filters))
            {
                rm.AirFilters          = fnModelAir.Filters;
                rm.AirFilterDimensions = addFilterDimensions(fnModelAir.FilterUrls, FilterTypes.Air);
            }

            FilterNodeModel fnModelOil = addFilterInfo(mdDR, FilterTypes.Oil);

            if (!String.IsNullOrEmpty(fnModelOil.Filters))
            {
                rm.OilFilters          = fnModelOil.Filters;
                rm.OilFilterDimensions = addFilterDimensions(fnModelOil.FilterUrls, FilterTypes.Oil);
            }

            FilterNodeModel fnModelFuel = addFilterInfo(mdDR, FilterTypes.Fuel);

            if (!String.IsNullOrEmpty(fnModelFuel.Filters))
            {
                rm.FuelFilters          = fnModelFuel.Filters;
                rm.FuelFilterDimensions = addFilterDimensions(fnModelFuel.FilterUrls, FilterTypes.Fuel);
            }

            FilterNodeModel fnModelInterior = addFilterInfo(mdDR, FilterTypes.Interior);

            if (!String.IsNullOrEmpty(fnModelInterior.Filters))
            {
                rm.InteriorFilters          = fnModelInterior.Filters;
                rm.InteriorFilterDimensions = addFilterDimensions(fnModelInterior.FilterUrls, FilterTypes.Interior);
            }

            FilterNodeModel fnModelOther = addFilterInfo(mdDR, FilterTypes.Other);

            if (!String.IsNullOrEmpty(fnModelOther.Filters))
            {
                rm.OtherFilters          = fnModelOther.Filters;
                rm.OtherFilterDimensions = addFilterDimensions(fnModelOther.FilterUrls, FilterTypes.Other);
            }
        }