コード例 #1
0
        public PostsListViewModel GetLatestPosts(int count)
        {
            var model = new PostsListViewModel
                            {
                                Posts = _postsRepository.GetLatestPosts(count)
                            };

            return model;
        }
コード例 #2
0
        public PostsListViewModel GetPostsForSearch(string searchString, int page, int pageSize)
        {
            var model = new PostsListViewModel
                            {
                                Posts = _postsRepository.GetPostsForSearch(searchString, page - 1, pageSize),
                                TotalPosts = _postsRepository.TotalPostsForSearchString(searchString),
                                PageSize = pageSize,
                                CurrentPage = page,
                                PageType = EPageType.SearchStringList,
                                RouteValue = searchString
                            };

            model.TotalPages = Convert.ToInt32(Math.Ceiling((double)model.TotalPosts / pageSize));
            model.Title = String.Format(@"Post for search string ""{0}""", searchString);

            return model;
        }
コード例 #3
0
        public static HtmlString PaginationForModel(this HtmlHelper helper, PostsListViewModel model)
        {
            var action = SetActionName(model.PageType);

            var routeValues = SetRouteValues(model.PageType, model.RouteValue, model.CurrentPage);

            if (model.CurrentPage == 1)
            {
                return helper.ActionLink("Next >", action, "Blog", routeValues[0], null);
            }
            if (model.CurrentPage == model.TotalPages)
            {
                return helper.ActionLink("< Previous", action, "Blog", routeValues[1], null);
            }
            return MvcHtmlString.Create(
                helper.ActionLink("< Previous", action, "Blog", routeValues[2], null) +
                helper.ActionLink("Next >", action, "Blog", routeValues[3], null).ToString());
        }
コード例 #4
0
        public PostsListViewModel GetPostsForTag(string tagSlug, int page, int pageSize)
        {
            var tag = _tagsRepository.GetTag(tagSlug);

            var model = new PostsListViewModel
                            {
                                Posts = _postsRepository.GetPostsForTag(tagSlug, page - 1, pageSize),
                                TotalPosts = _postsRepository.TotalPostsForTag(tagSlug),
                                PageSize = pageSize,
                                CurrentPage = page,
                                PageType = EPageType.TagsList,
                                RouteValue = tag.UrlSlug
                            };

            model.TotalPages = Convert.ToInt32(Math.Ceiling((double)model.TotalPosts / pageSize));
            model.Title = String.Format(@"Latest posts tagged on ""{0}""", tag.Name);

            return model;
        }
コード例 #5
0
        public PostsListViewModel GetPostsForCategory(string categorySlug, int page, int pageSize)
        {
            var category = _categoriesRepository.GetCategory(categorySlug);

            var model = new PostsListViewModel
                            {
                                Posts = _postsRepository.GetPostsForCategory(categorySlug, page - 1, pageSize),
                                TotalPosts = _postsRepository.TotalPostsForCategory(categorySlug),
                                PageSize = pageSize,
                                CurrentPage = page,
                                PageType = EPageType.CategoriesList,
                                RouteValue = category.Name
                            };

            model.TotalPages = Convert.ToInt32(Math.Ceiling((double)model.TotalPosts / pageSize));
            model.Title = String.Format(@"Latest posts on category ""{0}""", category.Name);

            return model;
        }
コード例 #6
0
        public PostsListViewModel GetPostsList(int page, int pageSize)
        {
            var model = new PostsListViewModel
                            {
                                Posts = _postsRepository.GetAllPosts(page - 1, pageSize),
                                TotalPosts = _postsRepository.TotalPosts(),
                                PageSize = pageSize,
                                CurrentPage = page,
                                Title = "Latest posts",
                                PageType = EPageType.Default
                            };

            model.TotalPages = Convert.ToInt32(Math.Ceiling((double) model.TotalPosts/pageSize));

            return model;
        }