private static void Tick() { Console.WriteLine(string.Format("{0} :: Scraping", DateTime.Now)); IRestResponse restResponse; BoligPortalResponse boligPortalResponse = _boligScraper.Scrape(_boligPortalRequest, out restResponse); if (restResponse.StatusCode != HttpStatusCode.OK) { Console.WriteLine(string.Format("Received an invalid status code: {0}. Should be {1}", restResponse.StatusCode, HttpStatusCode.OK)); return; } if (boligPortalResponse == null || boligPortalResponse.Properties == null || !boligPortalResponse.Properties.Any()) { Console.WriteLine("Received a non-deserializable response."); return; } if (!_firstRun) { List <string> newIds = boligPortalResponse.Properties.Select(p => p.Id).ToList(); IList <string> compareCachedIdsWithNewIds = _boligScraper.CompareAndReturnNewIds(newIds); compareCachedIdsWithNewIds.ForEach((i, id) => HandleEmail(boligPortalResponse, id, _userPreference)); } Console.WriteLine(string.Format("{0} :: Waiting for next callback", DateTime.Now)); _firstRun = false; }
public void CanCreateBoligPortalRequestAndDeserializeData() { // Arrange var boligPortalRequest = new BoligPortalRequest { Amt = ((int)RegionEnum.Aarhus).ToString(), RentMin = "0", RentMax = "10000", ZipCodes = new List <int> { 8000, 8200 }, ApartmentType = new List <string> { "1", "2", "3", "4" }, RentLength = new List <string> { "4" }, Page = "1", Limit = "15", SortCol = "3", SortDesc = "1" }; // Act IRestResponse restResponse = null; BoligPortalResponse boligPortalResponse = _boligScraper.Scrape(boligPortalRequest, out restResponse); // Assert Assert.That(restResponse, Is.Not.Null); Assert.That(boligPortalRequest, Is.Not.Null); Assert.That(boligPortalResponse.Properties.Count, Is.Not.EqualTo(0)); }
private static void HandleEmail(BoligPortalResponse boligPortalResponse, string id, UserPreference userPreference) { BoligPortalProperty boligPortalProperty = boligPortalResponse.Properties.SingleOrDefault(p => p.Id == id); if (boligPortalProperty == null) return; _boligScraper.SendEmail(boligPortalProperty, userPreference); Console.WriteLine(string.Format("{0} :: Send email for '{1}' to '{2}'", DateTime.Now, boligPortalProperty.Id, userPreference.Email)); }
private static void HandleEmail(BoligPortalResponse boligPortalResponse, string id, UserPreference userPreference) { BoligPortalProperty boligPortalProperty = boligPortalResponse.Properties.SingleOrDefault(p => p.Id == id); if (boligPortalProperty == null) { return; } _boligScraper.SendEmail(boligPortalProperty, userPreference); Console.WriteLine(string.Format("{0} :: Send email for '{1}' to '{2}'", DateTime.Now, boligPortalProperty.Id, userPreference.Email)); }