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(""));
            }
        }
Beispiel #2
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(""));
            }
        }