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(); } } } }
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(); } }