Exemple #1
0
        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));
        }
Exemple #3
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));
        }
Exemple #4
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));
        }