public ActionResult News()
        {
            NewsItemsViewModel vm = new NewsItemsViewModel();

            vm.Items = repository.GetNews();
            return(PartialView("NewsControl", vm));
        }
Esempio n. 2
0
        // получить все новости
        public async Task <IActionResult> ReadAllNews()
        {
            // вьюмодель
            NewsItemsViewModel nivm = new NewsItemsViewModel();

            nivm.newsItems = await _db.GetAllNewsItems();

            nivm.currentPageNumber = 1;

            nivm.newsItemsCount = await _db.GetNewsItemsCount();

            return(View(nivm));
        }
Esempio n. 3
0
        // страница новостей pageSize
        public async Task <IActionResult> Page(int pageNumber)
        {
            // Вьюмодель для статей
            NewsItemsViewModel nivm = new NewsItemsViewModel();

            // передача во вьюмодель - общего ко-ва новостей
            nivm.newsItemsCount = await _db.GetNewsItemsCount();

            // номер текущей страницы
            nivm.currentPageNumber = 1;

            // сами новости
            nivm.newsItems = await _db.GetPageOfNewsItems(pageNumber, pageSize);

            return(View(nivm));
        }
Esempio n. 4
0
        public NewsItemsViewModel GetNewsItems(int page = 1, int numberOfItems = 10)
        {
            var model = new NewsItemsViewModel();

            var list      = new List <Models.News>();
            var item      = Context.Site.Database.GetItem($"{Context.Site.ContentStartPath}/Data/News");
            var newsIndex = ContentSearchManager.GetIndex(indexName);

            try
            {
                using (var context = newsIndex.CreateSearchContext())
                {
                    var results = context.GetQueryable <NewsSearchResultItem>(new CultureExecutionContext(Context.Language.CultureInfo))
                                  .Where(x => x.Paths.Contains(item.ID) && x.TemplateId == Templates.News.ID)
                                  .OrderByDescending(x => x.NewsDate).Skip((page - 1) * numberOfItems).Take(numberOfItems);

                    model.NumberOfSearchResults = results.GetResults().TotalSearchResults;
                    var pagesCount = (double)model.NumberOfSearchResults / numberOfItems;
                    model.NumberOfPages = (int)Math.Ceiling(pagesCount);

                    if (results.Any())
                    {
                        foreach (var newsSearchResultItem in results)
                        {
                            var news = new Models.News {
                                Item = newsSearchResultItem.GetItem()
                            };
                            list.Add(news);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Log.Error("An error occured in NewsRepository GetNewsItems", exception.InnerException, typeof(NewsRepository));
            }

            model.NewsItems = list;

            return(model);
        }