示例#1
0
        /// <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(""));
            }
        }
示例#3
0
        /// <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);
        }
示例#5
0
        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(""));
            }
        }