예제 #1
0
        public async Task <IActionResult> Index()
        {
            var stories = await newsRepository.All().EagerLoad().ForPage(1).ResultsAsync();

            ViewBag.CurrentPage   = "News";
            ViewBag.CurrentPageNo = 1;

            return(View(new NewsViewModel()
            {
                Stories = stories.Select(s => NewsStoryDTO.ToDTO(s)),
                PageNumbers = GetPageNumbers()
            }));
        }
예제 #2
0
        public async Task <IActionResult> Page(int pageNo)
        {
            if (pageNo == 1)
            {
                return(RedirectToActionPermanent("Index"));
            }

            var stories = await newsRepository.All().EagerLoad().ForPage(pageNo).ResultsAsync();

            ViewBag.CurrentPage   = "News";
            ViewBag.CurrentPageNo = pageNo;

            return(View(new NewsViewModel()
            {
                Stories = stories.Select(s => NewsStoryDTO.ToDTO(s)),
                PageNumbers = GetPageNumbers()
            }));
        }
예제 #3
0
        public async Task <IActionResult> ViewStory(int id, string title)
        {
            var article = await newsRepository.GetByIdAsync(id, true);

            if (article.IsNull())
            {
                return(NotFound());
            }

            var friendlyUrl = StringExtensions.URLFriendly(article.Title);

            if (!string.Equals(friendlyUrl, title, StringComparison.Ordinal))
            {
                return(RedirectToRoutePermanent("", new { id, title = friendlyUrl }));
            }

            ViewBag.CurrentPage = "News";
            return(View(NewsStoryDTO.ToDTO(article)));
        }