/// <summary> /// Prepare nopCommerce news model /// </summary> /// <returns>nopCommerce news model</returns> public virtual NopCommerceNewsModel PrepareNopCommerceNewsModel() { var model = new NopCommerceNewsModel { HideAdvertisements = _adminAreaSettings.HideAdvertisementsOnAdminArea }; var rssData = _cacheManager.Get(ModelCacheEventConsumer.OFFICIAL_NEWS_MODEL_KEY, () => { //compose nopCommerce news RSS feed URL var nopCommerceNewsUrl = string.Format(NOP_COMMERCE_NEWS_URL, NopVersion.CurrentVersion, _webHelper.IsLocalRequest(_httpContextAccessor.HttpContext.Request), _adminAreaSettings.HideAdvertisementsOnAdminArea, _webHelper.GetStoreLocation()).ToLowerInvariant(); //create request var request = WebRequest.Create(nopCommerceNewsUrl); //specify request timeout request.Timeout = 5000; //try to get nopCommerce news RSS feed using (var response = request.GetResponse()) using (var reader = XmlReader.Create(response.GetResponseStream())) return(RssFeed.Load(reader)); }); for (var i = 0; i < rssData.Items.Count; i++) { var item = rssData.Items.ElementAt(i); var newsItem = new NopCommerceNewsDetailsModel { Title = item.TitleText, Summary = item.ContentText, Url = item.Url.OriginalString, PublishDate = item.PublishDate }; model.Items.Add(newsItem); //has new items? if (i == 0) { var firstRequest = string.IsNullOrEmpty(_adminAreaSettings.LastNewsTitleAdminArea); if (_adminAreaSettings.LastNewsTitleAdminArea != newsItem.Title) { _adminAreaSettings.LastNewsTitleAdminArea = newsItem.Title; _settingService.SaveSetting(_adminAreaSettings); if (!firstRequest) { //new item model.HasNewItems = true; } } } } return(model); }
public IViewComponentResult Invoke() { try { var feedUrl = $"http://www.Telenoc.com/NewsRSS.aspx?Version={NopVersion.CurrentVersion}&Localhost={_webHelper.IsLocalRequest(Request)}&HideAdvertisements={_adminAreaSettings.HideAdvertisementsOnAdminArea}&StoreURL={_storeContext.CurrentStore.Url}" .ToLowerInvariant(); var rssData = _cacheManager.Get(ModelCacheEventConsumer.OFFICIAL_NEWS_MODEL_KEY, () => { //specify timeout (5 secs) var request = WebRequest.Create(feedUrl); request.Timeout = 5000; using (var response = request.GetResponse()) using (var reader = XmlReader.Create(response.GetResponseStream())) { return(RssFeed.Load(reader)); } }); var model = new NopCommerceNewsModel { HideAdvertisements = _adminAreaSettings.HideAdvertisementsOnAdminArea }; for (var i = 0; i < rssData.Items.Count; i++) { var item = rssData.Items.ElementAt(i); var newsItem = new NopCommerceNewsModel.NewsDetailsModel { Title = item.TitleText, Summary = item.ContentText, Url = item.Url.OriginalString, PublishDate = item.PublishDate }; model.Items.Add(newsItem); //has new items? if (i == 0) { var firstRequest = string.IsNullOrEmpty(_adminAreaSettings.LastNewsTitleAdminArea); if (_adminAreaSettings.LastNewsTitleAdminArea != newsItem.Title) { _adminAreaSettings.LastNewsTitleAdminArea = newsItem.Title; _settingService.SaveSetting(_adminAreaSettings); if (!firstRequest) { //new item model.HasNewItems = true; } } } } return(View(model)); } catch { return(Content("")); } }
/// <summary> /// Prepare nopCommerce news model /// </summary> /// <returns>nopCommerce news model</returns> public virtual NopCommerceNewsModel PrepareNopCommerceNewsModel() { var model = new NopCommerceNewsModel { HideAdvertisements = _adminAreaSettings.HideAdvertisementsOnAdminArea }; var rssData = _cacheManager.Get(NopModelCacheDefaults.OfficialNewsModelKey, () => _nopHttpClient.GetNewsRssAsync().Result); for (var i = 0; i < rssData.Items.Count; i++) { var item = rssData.Items.ElementAt(i); var newsItem = new NopCommerceNewsDetailsModel { Title = item.TitleText, Summary = item.ContentText, Url = item.Url.OriginalString, PublishDate = item.PublishDate }; model.Items.Add(newsItem); //has new items? if (i == 0) { var firstRequest = string.IsNullOrEmpty(_adminAreaSettings.LastNewsTitleAdminArea); if (_adminAreaSettings.LastNewsTitleAdminArea != newsItem.Title) { _adminAreaSettings.LastNewsTitleAdminArea = newsItem.Title; _settingService.SaveSetting(_adminAreaSettings); if (!firstRequest) { //new item model.HasNewItems = true; } } } } return(model); }
/// <summary> /// Prepare nopCommerce news model /// </summary> /// <returns>nopCommerce news model</returns> public virtual NopCommerceNewsModel PrepareNopCommerceNewsModel() { var model = new NopCommerceNewsModel { HideAdvertisements = _adminAreaSettings.HideAdvertisementsOnAdminArea }; try { //try to get news RSS feed var rssData = _staticCacheManager.Get(_cacheKeyService.PrepareKeyForDefaultCache(NopModelCacheDefaults.OfficialNewsModelKey), () => { try { return(_nopHttpClient.GetNewsRssAsync().Result); } catch (AggregateException exception) { //rethrow actual excepion throw exception.InnerException; } }); for (var i = 0; i < rssData.Items.Count; i++) { var item = rssData.Items.ElementAt(i); var newsItem = new NopCommerceNewsDetailsModel { Title = item.TitleText, Summary = item.ContentText, Url = item.Url.OriginalString, PublishDate = item.PublishDate }; model.Items.Add(newsItem); //has new items? if (i != 0) { continue; } var firstRequest = string.IsNullOrEmpty(_adminAreaSettings.LastNewsTitleAdminArea); if (_adminAreaSettings.LastNewsTitleAdminArea == newsItem.Title) { continue; } _adminAreaSettings.LastNewsTitleAdminArea = newsItem.Title; _settingService.SaveSetting(_adminAreaSettings); //new item if (!firstRequest) { model.HasNewItems = true; } } } catch (Exception ex) { _logger.Error("No access to the news. Website apratim.azurewebsites.net is not available.", ex); } return(model); }
public virtual ActionResult NopCommerceNews() { try { string feedUrl = string.Format("http://www.njkhanh.com/NewsRSS.aspx?Version={0}&Localhost={1}&HideAdvertisements={2}&StoreURL={3}", NopVersion.CurrentVersion, Request.Url.IsLoopback, _adminAreaSettings.HideAdvertisementsOnAdminArea, _storeContext.CurrentStore.Url) .ToLowerInvariant(); var rssData = _cacheManager.Get(ModelCacheEventConsumer.OFFICIAL_NEWS_MODEL_KEY, () => { //specify timeout (5 secs) var request = WebRequest.Create(feedUrl); request.Timeout = 5000; using (var response = request.GetResponse()) using (var reader = XmlReader.Create(response.GetResponseStream())) { return(SyndicationFeed.Load(reader)); } }); var model = new NopCommerceNewsModel() { HideAdvertisements = _adminAreaSettings.HideAdvertisementsOnAdminArea }; for (int i = 0; i < rssData.Items.Count(); i++) { var item = rssData.Items.ElementAt(i); var newsItem = new NopCommerceNewsModel.NewsDetailsModel() { Title = item.Title.Text, Summary = item.Summary.Text, Url = item.Links.Any() ? item.Links.First().Uri.OriginalString : null, PublishDate = item.PublishDate }; model.Items.Add(newsItem); //has new items? if (i == 0) { var firstRequest = String.IsNullOrEmpty(_adminAreaSettings.LastNewsTitleAdminArea); if (_adminAreaSettings.LastNewsTitleAdminArea != newsItem.Title) { _adminAreaSettings.LastNewsTitleAdminArea = newsItem.Title; _settingService.SaveSetting(_adminAreaSettings); if (!firstRequest) { //new item model.HasNewItems = true; } } } } return(PartialView(model)); } catch (Exception) { return(Content("")); } }