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