Example #1
0
        public void LoadCarzoneFromJson()
        {
            using (var container = Builder.Build())
            {
                var carzoneApi = new CarzoneApi(container.Resolve<Requests.IRequester>());
                var cache = new Cache();

                var dumpFiles = Directory.GetFiles(@"C:\dev\cars\Scraper.Test\bin\Debug", "jsondump*");

                var carzoneListings = dumpFiles
                    .AsParallel()
                    .Select(path => File.ReadAllText(path))
                    .SelectMany(text => carzoneApi.Deserialize(text))
                    .Where(cl => cl.VehicleMake != null && cl.VehicleModel != null)
                    .ToList();

                for (int i = 0; i < carzoneListings.Count(); i += 100)
                {
                    using (var context = new CarsContext())
                    {
                        for (int j = i; j < i + 100 && j < carzoneListings.Count(); j++)
                        {
                            var carzoneListing = carzoneListings[j];

                            var listing = new Listing(context,
                                cache,
                                SourceSite.Carzone,
                                carzoneListing.AdvertId.ToString(),
                                carzoneListing.VehicleMake,
                                carzoneListing.VehicleModel,
                                carzoneListing.VehicleYearOfManufacture,
                                carzoneListing.VehiclePriceEuro,
                                -1,
                                carzoneListing.AdvertiserCounty,
                                carzoneListing.VehicleDerivative);

                            context.Listings.Add(listing);
                        }
                        context.SaveChanges();
                    }
                }
            }
        }
Example #2
0
        public void UpdateCarzoneEntries()
        {
            var carzoneApi = new CarzoneApi(new Requests.WebRequester());

            using (var context = new CarsContext())
            {
                var listings = context.Listings
                    .Where(l => l.Source == SourceSite.Carzone)
                    .Where(l => l.Mileage == -1)
                    .ToList();

                foreach (var listing in listings)
                {
                    CarzoneListingDetails details;
                    try
                    {
                        details = carzoneApi.GetListingDetails(Convert.ToInt64(listing.SourceId));
                    }
                    catch (Exception e)
                    {
                        var a = 1;
                        continue;
                    }

                    listing.Mileage = details.VehicleMileage;
                }
                context.SaveChanges();
            }
        }