Esempio n. 1
0
        public ActionResult Tag(string tag, string page)
        {
            BlogPostClient  bpc       = new BlogPostClient();
            List <BlogPost> postsList = new List <BlogPost>(bpc.GetAllForTag(tag.ToLower()));

            postsList.Sort((a, b) => DateTime.Compare(b.Date, a.Date));
            if (postsList.Count == 0)
            {
                ViewBag.Articles = null;
            }
            else
            {
                int pages             = Convert.ToInt32(Math.Ceiling((double)postsList.Count / 10));
                int currentPageNumber = 1;
                int skip = 0;
                if (page != null)
                {
                    if (!Regex.IsMatch(page, @"^\d+$"))
                    {
                        return(RedirectToAction("Index"));
                    }
                    currentPageNumber = Convert.ToInt32(page);
                    skip = (currentPageNumber - 1) * 10;
                }
                ViewBag.Pages       = pages;
                ViewBag.CurrentPage = currentPageNumber;
                List <BlogPost> currentPage = postsList.Skip(skip).Take(10).ToList();
                if (currentPage.Count == 0)
                {
                    return(RedirectToAction("Index"));
                }
                ViewBag.Tag      = tag;
                ViewBag.Articles = currentPage;
            }
            return(View());
        }