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