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 ModelPageDetailCollectorSet[] getModelDetails(ModelPageCollectorSet modelPageSet, ModelPageModel modelPageModel) { ModelPageDetailCollectorSet modelPageDetailSet = new ModelPageDetailCollectorSet(); modelPageDetailSet.Parent = modelPageSet; modelPageDetailSet.Data = getRowModel(modelPageModel, modelPageSet); return(new[] { modelPageDetailSet }); }
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); } }
private RowModel getRowModel(ModelPageModel modelPageModel, ModelPageCollectorSet modelPageSet) { ModelCollectorSet modelSet = (ModelCollectorSet)modelPageSet.Parent; ProducerCollectorSet producerSet = (ProducerCollectorSet)modelSet.Parent; VehicleTypeCollectorSet vehicleType = (VehicleTypeCollectorSet)producerSet.Parent; RowModel rm = new RowModel(); rm.VehicleType = vehicleType.Data; rm.Producer = producerSet.Data; rm.Model = modelSet.Data; rm.ModelType = modelPageModel.ModelType; rm.MotorCode = modelPageModel.MotorCode; rm.kW = modelPageModel.kW; rm.PS = modelPageModel.PS; rm.Year = modelPageModel.Year; addFilters(modelPageSet, rm); return(rm); }