コード例 #1
0
ファイル: NewsModelFactory.cs プロジェクト: abcwarehouse/nop
        /// <summary>
        /// Prepare the news item list model
        /// </summary>
        /// <param name="command">News paging filtering model</param>
        /// <returns>
        /// A task that represents the asynchronous operation
        /// The task result contains the news item list model
        /// </returns>
        public virtual async Task <NewsItemListModel> PrepareNewsItemListModelAsync(NewsPagingFilteringModel command)
        {
            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var language = await _workContext.GetWorkingLanguageAsync();

            var store = await _storeContext.GetCurrentStoreAsync();

            var newsItems = await _newsService.GetAllNewsAsync(language.Id, store.Id, command.PageNumber - 1, command.PageSize);

            var model = new NewsItemListModel
            {
                WorkingLanguageId = language.Id,
                NewsItems         = await newsItems.SelectAwait(async newsItem =>
                {
                    var newsModel = new NewsItemModel();
                    await PrepareNewsItemModelAsync(newsModel, newsItem, false);
                    return(newsModel);
                }).ToListAsync()
            };

            model.PagingFilteringContext.LoadPagedList(newsItems);

            return(model);
        }
コード例 #2
0
        public virtual async Task <NewsItemListModel> PrepareNewsItemList(NewsPagingFilteringModel command)
        {
            var model = new NewsItemListModel();

            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = await _newsService.GetAllNews(_storeContext.CurrentStore.Id,
                                                          command.PageNumber - 1, command.PageSize);

            model.PagingFilteringContext.LoadPagedList(newsItems);
            foreach (var item in newsItems)
            {
                var newsModel = new NewsItemModel();
                await PrepareNewsItemModel(newsModel, item, false);

                model.NewsItems.Add(newsModel);
            }

            return(model);
        }
コード例 #3
0
        /// <summary>
        /// Prepare the news item list model
        /// </summary>
        /// <param name="command">News paging filtering model</param>
        /// <returns>News item list model</returns>
        public virtual NewsItemListModel PrepareNewsItemListModel(NewsPagingFilteringModel command)
        {
            var model = new NewsItemListModel
            {
                WorkingLanguageId = _workContext.WorkingLanguage.Id
            };

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = _newsService.GetAllNews(_workContext.WorkingLanguage.Id, _storeContext.CurrentStore.Id,
                                                    command.PageNumber - 1, command.PageSize);

            model.PagingFilteringContext.LoadPagedList(newsItems);

            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                return(newsModel);
            })
                              .ToList();

            return(model);
        }
コード例 #4
0
ファイル: NewsModelFactory.cs プロジェクト: agsyazilim/Ags
        public NewsItemListModel PrePareNewsListModel(NewsPagingFilteringModel command)
        {
            var model = new NewsItemListModel();

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }

            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = _newsService.GetAllNews(pageIndex: command.PageNumber - 1, pageSize: command.PageSize);

            model.PagingFilteringContext.LoadPagedList(newsItems);
            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                return(newsModel);
            })
                              .ToList();
            return(model);
        }
コード例 #5
0
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
                return RedirectToRoute("HomePage");

            var model = new NewsItemListModel();
            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0) command.PageSize = _newsSettings.NewsArchivePageSize;
            if (command.PageNumber <= 0) command.PageNumber = 1;

            var newsItems = _newsService.GetAllNews(_workContext.WorkingLanguage.Id, _storeContext.CurrentStore.Id,
                command.PageNumber - 1, command.PageSize);
            model.PagingFilteringContext.LoadPagedList(newsItems);

            model.NewsItems = newsItems
                .Select(x =>
                {
                    var newsModel = new NewsItemModel();
                    PrepareNewsItemModel(newsModel, x, false);
                    return newsModel;
                })
                .ToList();

            return View(model);
        }
コード例 #6
0
        public virtual IActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
                return RedirectToRoute("HomePage");

            var model = _newsModelFactory.PrepareNewsItemListModel(command);
            return View(model);
        }
コード例 #7
0
        public virtual IActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("HomePage"));
            }

            var model = _newsViewModelService.PrepareNewsItemList(command);

            return(View(model));
        }
コード例 #8
0
        public virtual async Task <IActionResult> List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("Homepage"));
            }

            var model = await _newsModelFactory.PrepareNewsItemListModelAsync(command);

            return(View(model));
        }
コード例 #9
0
        public virtual IActionResult List2(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("Homepage"));
            }

            var model = _newsModelFactory.PrepareNewsItemListModel(command);

            return(View(model));
            //return View("SumiList")
        }
コード例 #10
0
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("HomePage"));
            }

            var model = new NewsItemListModel();

            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsList = _newsService.GetAllNews(_workContext.WorkingLanguage.Id, _storeContext.CurrentStore.Id,
                                                   0, int.MaxValue);
            List <NewsItem> nlist = new List <NewsItem>();

            if (!string.IsNullOrEmpty(command.FilterDateTime))
            {
                nlist = newsList.Where(o => o.CreatedOnUtc >= Convert.ToDateTime(command.FilterDateTime) && o.CreatedOnUtc < Convert.ToDateTime(command.FilterDateTime).AddDays(1)).ToList <NewsItem>();
            }
            else
            {
                foreach (var news in newsList)
                {
                    nlist.Add(news);
                }
            }
            model.NewsDateTimes = newsList.OrderByDescending(o => o.CreatedOnUtc).Select(o => o.CreatedOnUtc.ToString("D")).Distinct().ToList <string>();
            var newsItems = new PagedList <NewsItem>(nlist, command.PageNumber - 1, command.PageSize);


            model.PagingFilteringContext.LoadPagedList(newsItems);

            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                return(newsModel);
            })
                              .ToList();

            return(View(model));
        }
コード例 #11
0
        public virtual IActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("Homepage"));
            }

            var model = _newsModelFactory.PrepareNewsItemListModel(command);

            model.NewsItems = model.NewsItems.Where(x => x.SeName != "gioi-thieu-cong-ty").ToList();
            //return View(model);
            return(View("SumiList", model));
        }
コード例 #12
0
        public virtual async Task <IActionResult> List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("HomePage"));
            }

            var model = await _mediator.Send(new GetNewsItemList()
            {
                Command = command
            });

            return(View(model));
        }
コード例 #13
0
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("HomePage"));
            }

            var model = new NewsItemListModel();

            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = _newsService.GetAllNews(_workContext.WorkingLanguage.Id,
                                                    command.PageNumber - 1, command.PageSize);

            model.PagingFilteringContext.LoadPagedList(newsItems);
            if (newsItems.Count == 0 && command.PageNumber > 1)
            {
                return(RedirectToAction("List"));
            }
            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                if (newsModel.PictureId != 0)
                {
                    newsModel.Picture = new PictureModel()
                    {
                        ImageUrl = _pictureService.GetPictureUrl(newsModel.PictureId)
                    };
                }
                return(newsModel);
            })
                              .ToList();
            model.PagingFilteringContext.Approved          = null;
            model.PagingFilteringContext.CreationStartDate = null;
            model.PagingFilteringContext.CreationEndDate   = null;
            model.PagingFilteringContext.PublishEndDate    = null;
            model.PagingFilteringContext.PublishStartDate  = null;
            return(View(model));
        }
コード例 #14
0
        protected NewsItemListModel PrepareNewsItemListModel(NewsPagingFilteringModel command)
        {
            Guard.NotNull(command, nameof(command));

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var model = PrepareNewsItemListModel(true, null, false, command.PageNumber - 1, command.PageSize, true);

            return(model);
        }
コード例 #15
0
        public ActionResult List(NewsPagingFilteringModel command, string seName)
        {
            int sellerId = _workContext.CurrentMiniSite.Customer.Id;
            var model    = new NewsItemListModel();

            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = _newsService.GetAllCompanyNews(_workContext.WorkingLanguage.Id, sellerId, command.PageNumber - 1, command.PageSize, miniSite: (int)(NewsDisplayEnum.Both | NewsDisplayEnum.MiniSite));

            model.PagingFilteringContext.LoadPagedList(newsItems);

            if (newsItems.Count == 0 && command.PageNumber > 1)
            {
                return(RedirectToAction("List"));
            }

            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                if (newsModel.PictureId != 0)
                {
                    newsModel.Picture = new PictureModel()
                    {
                        ImageUrl = _pictureService.GetPictureUrl(newsModel.PictureId)
                    };
                }
                return(newsModel);
            })
                              .ToList();

            return(View(model));
        }
コード例 #16
0
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(HttpNotFound());
            }

            var model   = PrepareNewsItemListModel(command);
            var storeId = _services.StoreContext.CurrentStore.Id;

            model.MetaTitle       = _newsSettings.GetLocalizedSetting(x => x.MetaTitle, storeId);
            model.MetaDescription = _newsSettings.GetLocalizedSetting(x => x.MetaDescription, storeId);
            model.MetaKeywords    = _newsSettings.GetLocalizedSetting(x => x.MetaKeywords, storeId);

            if (!model.MetaTitle.HasValue())
            {
                model.MetaTitle = T("PageTitle.NewsArchive").Text;
            }

            return(View(model));
        }
コード例 #17
0
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(HttpNotFound());
            }

            var workingLanguageId = _services.WorkContext.WorkingLanguage.Id;
            var model             = new NewsItemListModel();

            model.WorkingLanguageId = workingLanguageId;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = _newsService.GetAllNews(workingLanguageId, _services.StoreContext.CurrentStore.Id, command.PageNumber - 1, command.PageSize);

            model.PagingFilteringContext.LoadPagedList(newsItems);

            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                return(newsModel);
            })
                              .ToList();

            Services.DisplayControl.AnnounceRange(newsItems);

            return(View(model));
        }
コード例 #18
0
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var model = new NewsItemListModel();

            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = _newsService.GetAllNews(_workContext.WorkingLanguage.Id,
                                                    null, null, command.PageNumber - 1, command.PageSize);

            model.PagingFilteringContext.LoadPagedList(newsItems);

            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                return(newsModel);
            })
                              .ToList();

            return(View(model));
        }
コード例 #19
0
ファイル: NewsController.cs プロジェクト: agsyazilim/Ags
        public IActionResult List(NewsPagingFilteringModel command)
        {
            var model = _newsModelFactory.PrePareNewsListModel(command);

            return(View(model));
        }
コード例 #20
0
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
                return RedirectToRoute("HomePage");

            var model = new NewsItemListModel();
            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0) command.PageSize = _newsSettings.NewsArchivePageSize;
            if (command.PageNumber <= 0) command.PageNumber = 1;

            var newsItems = _newsService.GetAllNews(_workContext.WorkingLanguage.Id, _storeContext.CurrentStore.Id,
                command.PageNumber - 1, command.PageSize);
            model.PagingFilteringContext.LoadPagedList(newsItems);

            model.NewsItems = newsItems
                .Select(x =>
                {
                    var newsModel = new NewsItemModel();
                    PrepareNewsItemModel(newsModel, x, false);
                    return newsModel;
                })
                .ToList();

            return View(model);
        }
コード例 #21
0
 public NewsItemListModel()
 {
     PagingFilteringContext = new NewsPagingFilteringModel();
     NewsItems = new List<NewsItemModel>();
 }
コード例 #22
0
 public NewsItemListModel()
 {
     PagingFilteringContext = new NewsPagingFilteringModel();
     NewsItems = new List <NewsItemModel>();
 }
コード例 #23
0
ファイル: NewsController.cs プロジェクト: onurh/AF452
        //[OutputCache(Duration = int.MaxValue, VaryByCustom = "lgg")]
        public ActionResult List(NewsPagingFilteringModel command)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var model = new NewsItemListModel();

            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }
            var DateStartMonth = DateTime.Now.AddMonths(-_newsSettings.NewsArchiveMonthSpan + 1);
            var date           = new DateTime(DateStartMonth.Year, DateStartMonth.Month, 1);

            string cacheKey = string.Format(ModelCacheEventConsumer.AF_NEWS_PAGE, _workContext.WorkingLanguage.Id,
                                            date, command.PageNumber - 1, command.PageSize);

            if (Request.Params["cc"] != null && Request.Params["cc"].ToString().ToLowerInvariant().Equals("true"))
            {
                _cacheManager.Remove(cacheKey);
            }

            var newsItems = _cacheManager.Get(cacheKey, 3600, () =>
            {
                return(_newsService.GetAllNews(_workContext.WorkingLanguage.Id,
                                               date, null, NewsType.News | NewsType.Interview, command.PageNumber - 1, command.PageSize));
            });

            model.PagingFilteringContext.LoadPagedList(newsItems);
            model.IsGuest = _workContext.CurrentCustomer.IsGuest();

            if (newsItems.Count == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }



            model.MainNewsItems = newsItems.Where(x => x.IsFeatured).Take(_newsSettings.MainNewsCount).Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemListModel(newsModel, x, false, NewsItemPictureType.Main, false);
                return(newsModel);
            })
                                  .OrderBy(x => x.DisplayOrder).ToList();

            model.MonthlyNewsItems = newsItems.Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemListModel(newsModel, x, false, NewsItemPictureType.Thumb, false);
                return(newsModel);
            }).ToList().GroupBy(x => x.CreatedOn.ToString("MMMM").ToUpper() + " " + x.CreatedOn.Year).ToList();



            return(View(model));
        }
コード例 #24
0
        public ActionResult SellerNews(NewsPagingFilteringModel command, string seName)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("HomePage"));
            }
            var model    = new NewsItemListModel();
            int sellerId = 0;

            if (String.Compare(seName, "Industry", true) != 0)
            {
                if (String.Compare(seName, "CompanyNews", true) != 0)
                {
                    var slug = _urlRecordService.GetBySlug(seName);
                    if (slug == null)
                    {
                        return(RedirectToRoute("NewsArchive"));
                    }
                    sellerId = _urlRecordService.GetBySlug(seName).EntityId;
                }
                else
                {
                    sellerId = -1;
                }
            }
            else
            {
                sellerId = 0;
            }
            if (sellerId > 0)
            {
                sellerId = _companyInformationService.GetCompanyInformation(sellerId).Customers.First().Id;
            }
            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;

            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var newsItems = _newsService.GetAllCompanyNews(_workContext.WorkingLanguage.Id, sellerId, command.PageNumber - 1, command.PageSize);

            model.PagingFilteringContext.LoadPagedList(newsItems);

            model.NewsItems = newsItems
                              .Select(x =>
            {
                var newsModel = new NewsItemModel();
                PrepareNewsItemModel(newsModel, x, false);
                if (newsModel.PictureId != 0)
                {
                    newsModel.Picture = new PictureModel()
                    {
                        ImageUrl = _pictureService.GetPictureUrl(newsModel.PictureId)
                    };
                }
                return(newsModel);
            })
                              .ToList();

            return(View("List", model));
        }
コード例 #25
0
        public ActionResult ManageNews(NewsPagingFilteringModel command)
        {
            if (_workContext.CurrentCustomer.CustomerRoles.Where(x => x.SystemName == "Sellers").FirstOrDefault() == null)
            {
                return(RedirectToRoute("homePage"));
            }
            if (command.PageSize <= 0)
            {
                command.PageSize = _newsSettings.NewsArchivePageSize;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }

            var model = new NewsItemListModel();

            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;
            //var newsItems = _newsService.GetAllCompanyNews(_workContext.CurrentCustomer.Id, command.PageNumber - 1, command.PageSize);
            IPagedList <NewsItem> newsItems;

            if (command.DisplayPlace == 0)
            {
                newsItems = _newsService.GetAllCompanyNews(command.LanguageId,
                                                           _workContext.CurrentCustomer.Id,
                                                           command.PageNumber - 1,
                                                           command.PageSize,
                                                           command.CreationStartDate,
                                                           command.CreationEndDate,
                                                           command.PublishStartDate,
                                                           command.PublishEndDate,
                                                           command.Approved, miniSite: (int)(NewsDisplayEnum.MiniSite | NewsDisplayEnum.Main | NewsDisplayEnum.Both));
            }
            else
            {
                newsItems = _newsService.GetAllCompanyNews(command.LanguageId,
                                                           _workContext.CurrentCustomer.Id,
                                                           command.PageNumber - 1,
                                                           command.PageSize,
                                                           command.CreationStartDate,
                                                           command.CreationEndDate,
                                                           command.PublishStartDate,
                                                           command.PublishEndDate,
                                                           command.Approved, miniSite: command.DisplayPlace);
            }
            model.PagingFilteringContext.LoadPagedList <NewsItem>(newsItems);

            model.NewsItems = newsItems.Select(x =>
            {
                var md = new NewsItemModel();
                PrepareNewsItemModel(md, x, false);

                if (md.PictureId != 0)
                {
                    md.Picture = new PictureModel()
                    {
                        ImageUrl = _pictureService.GetPictureUrl(md.PictureId, 200)
                    };
                }
                return(md);
            }).ToList();
            model.AviableLanguages = _languageService.GetAllLanguages().Select(x => new LanguageModel()
            {
                Id                = x.Id,
                Name              = x.Name,
                LanguageCulture   = x.LanguageCulture,
                FlagImageFileName = x.FlagImageFileName
            }).ToList();
            model.AviableLanguages.Add(new LanguageModel()
            {
                Id                = 0,
                Name              = _localizationService.GetResource("ETF.News.NotSet"),
                LanguageCulture   = "",
                FlagImageFileName = ""
            });
            return(View(model));
        }