Example #1
0
        public async Task <HoroscopeSet> RetrieveHoroscope()
        {
            if (_cachedHoroscope != null)
            {
                return(_cachedHoroscope);
            }
            _cachedHoroscope = new HoroscopeSet {
                Time = DateTime.Today
            };
            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://www.mon-horoscope-du-jour.com/horoscopes/quotidien/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/html"));
                client.DefaultRequestHeaders.UserAgent.Clear();
                client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident / 6.0)");
                client.Timeout = TimeSpan.FromSeconds(30);

                foreach (KeyValuePair <AstroSign, string> pageToParse in _urlToParse)
                {
                    Horoscope horoscope = await ParsePage(client, pageToParse.Key, pageToParse.Value);

                    _cachedHoroscope.Horoscopes.Add(horoscope);
                }
            }
            return(_cachedHoroscope);
        }
Example #2
0
        public async Task <HoroscopeSet> RetrieveHoroscope(DateTime date)
        {
            String pdfUrl    = BuildPdfURL(date);
            String localPath = BuildLocalFilePath(date);

            await DownloadFile(pdfUrl, localPath);

            HoroscopeSet horoscope = ExtractHoroscope(date, localPath);

            return(horoscope);
        }