private void FindListings(LeadSearch leadSearch) { var ypApi = new YellowPagesApi(); var yellowPagesSearchListingsJsonResult = ypApi.SearchListings(leadSearch.Location, leadSearch.Terms, leadSearch.Radius, leadSearch.YpPagesScraped); while (leadSearch.Leads.Count < Convert.ToInt32(yellowPagesSearchListingsJsonResult.SearchResult.MetaProperties.totalAvailable)) { if (yellowPagesSearchListingsJsonResult.SearchResult.SearchListings != null) { var leads = new List<Lead>(); foreach (var listing in yellowPagesSearchListingsJsonResult.SearchResult.SearchListings.SearchListing) { var lead = new Lead() { BusinessName = listing.BusinessName, BaseClickUrl = listing.BaseClickUrl, MoreInfoUrl = listing.MoreInfoUrl, Phone = listing.Phone, PrimaryCategory = listing.PrimaryCategory, YpListingId = listing.ListingId }; leads.Add(lead); } leadSearch.Leads.AddRange(leads); leadSearch.YpPagesScraped++; yellowPagesSearchListingsJsonResult = ypApi.SearchListings(leadSearch.Location, leadSearch.Terms,leadSearch.Radius, leadSearch.YpPagesScraped); } } //jobs done? if (leadSearch.Leads.Count == Convert.ToInt32(yellowPagesSearchListingsJsonResult.SearchResult.MetaProperties.totalAvailable)) { RavenSession.SaveChanges(); } }