private ProducerCollectorSet[] getProducers(VehicleTypeCollectorSet vehicleType, KeyValuePair <string, ITitleLinkPair[]> item)
        {
            List <ProducerCollectorSet> producers = new List <ProducerCollectorSet>();

            foreach (var pair in item.Value)
            {
                ProducerCollectorSet producerSet = new ProducerCollectorSet();
                producerSet.Data    = pair.Title;
                producerSet.Parent  = vehicleType;
                producerSet.Subsets = getModels(producerSet, pair);
                producers.Add(producerSet);
            }

            return(producers.ToArray());
        }
        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());
        }
        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);
        }