예제 #1
0
        /// <summary>
        /// Get the website content from content API
        /// </summary>
        /// <param name="websiteURL"></param>
        /// <returns></returns>
        public WebsiteCountResult GetWebsiteContent(string websiteURL)
        {
            WebsiteCountResult websiteContentCountResult = new WebsiteCountResult();

            websiteContentCountResult.WebsiteURL = websiteURL;

            var httpClientHandler = new HttpClientHandler();

            using (var client = new HttpClient(httpClientHandler))
            {
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                client.BaseAddress = new Uri("http://localhost:50220/");
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Add("User-Agent", "Anything");
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.Timeout.Add(TimeSpan.FromSeconds(200));
                string url  = string.Concat("api/GetWebContent/GetWebsiteContent");
                var    text = "{ websiteURL : '" + websiteURL + "'}";

                var content        = new StringContent(JObject.Parse(text).ToString(), Encoding.UTF8, "application/json");
                var portalResponse = client.PostAsync(url, content).Result;
                if (portalResponse.IsSuccessStatusCode)
                {
                    return(portalResponse.Content.ReadAsAsync <WebsiteCountResult>().Result);
                }
                else
                {
                    return(new WebsiteCountResult());
                }
            }
        }
        /// <summary>
        /// Gets the Website Content
        /// </summary>
        /// <returns>WebsiteCountResult</returns>
        public WebsiteCountResult GetWebsiteContent(string websiteUrl)
        {
            string key = Regex.Replace(websiteUrl, @"[^0-9a-zA-Z]+", "");

            key = key.Trim();
            if (HttpContext.Current?.Cache[key] == null)
            {
                WebsiteCountResult websiteCountResult = this.WebsiteContentReaderRepository.GetWebsiteContent(websiteUrl);
                if (websiteCountResult != null)
                {
                    HttpContext.Current?.Cache.Insert(key, websiteCountResult, null, DateTime.Now.AddDays(1), Cache.NoSlidingExpiration);
                }
                return(websiteCountResult);
            }
            return(HttpContext.Current?.Cache[key] as WebsiteCountResult);
        }