public async Task <string> Download(string url, Encoding websiteEncoding) { if (await _cachingProvider.HasKey(url)) { return(await _cachingProvider.GetValue(url)); } var responseBytes = await _httpClient.GetByteArrayAsync(url); var html = websiteEncoding.GetString(responseBytes); await _cachingProvider.CacheItem(url, html); return(html); }