コード例 #1
0
 public BlogPaginationModel(SiteDB dbInstance, BlogFilterType filterType, string filterValue, int?pageIndex, int?pageSize)
 {
     base.PageIndex              = pageIndex.GetValueOrDefault(0);
     base.PageSize               = pageSize.GetValueOrDefault(DEFAULT_PAGE_SIZE);
     base.AdditionalData         = JsonConvert.SerializeObject(new { FilterType = (int)filterType, FilterValue = filterValue });
     this.FilterType             = filterType;
     this.FilterValue            = filterValue;
     this._DBInstance            = dbInstance;
     this.SortedAndFilteredPosts = this._SortAndFilterPosts();
 }
コード例 #2
0
        public ActionResult SearchPaginate(PaginationModel model)
        {
            // deserialize the data
            var additionalData = JsonConvert.DeserializeObject <Dictionary <string, string> >(model.AdditionalData);

            // cast the value to the event type we want
            BlogFilterType filterType  = (BlogFilterType)int.Parse(additionalData["FilterType"]);
            string         filterValue = additionalData["FilterValue"];

            return(PartialView(
                       "~/Views/Blog/BlogPostsPaginationBody.cshtml",
                       new BlogPaginationModel(db, filterType, filterValue, model.PageIndex, model.PageSize)
                       ));
        }
コード例 #3
0
ファイル: BlogItemResolver.cs プロジェクト: gillissm/XBlog
        public override void Process(HttpRequestArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            if (((Context.Item == null) && (Context.Database != null)) && !string.IsNullOrWhiteSpace(args.Url.ItemPath))
            {
                Profiler.StartOperation("Resolve blog item.");
                string qsValue         = string.Empty;
                string decodedItemName = MainUtil.DecodeName(args.Url.ItemPath);

                string         blogItemPath = ResolveBlogItemPath(decodedItemName, XBSettings.XBCategoryUrlPattern, out qsValue);
                BlogFilterType filter       = BlogFilterType.None;
                if (!string.IsNullOrEmpty(blogItemPath))
                {
                    filter = BlogFilterType.Category;
                }
                else
                {
                    blogItemPath = ResolveBlogItemPath(decodedItemName, XBSettings.XBAuthorUrlPattern, out qsValue);
                    if (!string.IsNullOrEmpty(blogItemPath))
                    {
                        filter = BlogFilterType.Author;
                    }
                    else
                    {
                        blogItemPath = ResolveBlogItemPath(decodedItemName, XBSettings.XBTagsUrlPattern, out qsValue);
                        if (!string.IsNullOrEmpty(blogItemPath))
                        {
                            filter = BlogFilterType.Tag;
                        }
                        else
                        {
                            blogItemPath = ResolveBlogItemPath(decodedItemName, XBSettings.XBAuthorViewUrlPattern, out qsValue);
                            if (!string.IsNullOrEmpty(blogItemPath))
                            {
                                filter = BlogFilterType.AuthorView;
                            }
                            else
                            {
                                blogItemPath = ResolveBlogItemPath(decodedItemName, XBSettings.XBSearchURLPattern, out qsValue);
                                if (!string.IsNullOrEmpty(blogItemPath))
                                {
                                    filter = BlogFilterType.Search;
                                }
                            }
                        }
                    }
                }
                if (!string.IsNullOrEmpty(blogItemPath) && filter != BlogFilterType.None)
                {
                    Item blogRoot = args.GetItem(blogItemPath);
                    if (blogRoot != null)
                    {
                        Context.Item = blogRoot;
                        NameValueCollection nv = StringUtil.ParseNameValueCollection(args.Url.QueryString, '&', '=');
                        switch (filter)
                        {
                        case BlogFilterType.Category: nv.Add(XBSettings.XBCategoryQS, qsValue);
                            break;

                        case BlogFilterType.Author: nv.Add(XBSettings.XBAuthorQS, qsValue);
                            break;

                        case BlogFilterType.AuthorView: nv.Add(XBSettings.XBAuthorViewQS, qsValue);
                            break;

                        case BlogFilterType.Tag: nv.Add(XBSettings.XBTagQS, qsValue);
                            break;

                        case BlogFilterType.Search: nv.Add(XBSettings.XBSearchQS, qsValue);
                            break;

                        case BlogFilterType.None:
                        default:
                            break;
                        }
                        args.Url.QueryString = StringUtil.NameValuesToString(nv, "&");
                    }
                }
                Profiler.EndOperation();
            }
        }
コード例 #4
0
 public BlogPaginationModel(SiteDB dbInstance, BlogFilterType filterType, string filterValue) : this(dbInstance, filterType, filterValue, null, null)
 {
 }