예제 #1
0
        public IActionResult Index(int index)
        {
            BlogPagingModel blogPagingModel = new BlogPagingModel();

            blogPagingModel.PageNumber = index;
            return(View(blogPagingModel));
        }
예제 #2
0
        protected virtual void PrepareBlogPagingModel(BlogPagingModel model, IPagedList <Blog> blogs, int pageIndex = 0)
        {
            if (model == null)
            {
                throw new Exception("model is null!");
            }
            if (blogs == null)
            {
                blogs = GetBlogs(pageIndex, 10);
            }
            model.TotalPages = blogs.TotalPages;
            model.Index      = blogs.PageIndex;
            model.PageSize   = blogs.PageSize;
            model.TotalPages = blogs.TotalCount;
            model.Blogs      = model.Blogs ?? new List <BlogModel>();
            foreach (var blog in blogs)
            {
                var m = new BlogModel();
                PrepareBlogModel(m, blog);
                model.Blogs.Add(m);
            }
            var isAuthenticated = HttpContext.User.Identity.IsAuthenticated;

            if (isAuthenticated)
            {
                var CustomerId = HttpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Sid).Value;
                int id         = int.Parse(CustomerId);
                if (id == 1)
                {
                    model.Editable = true;
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 带翻页的获取
        /// </summary>
        /// <param name="tagId"></param>
        /// <param name="PageIndex"></param>
        /// <param name="SegmentIndex"></param>
        public BlogPagingModel GetPagedBlogsByTagId(int tagId, int pageIndex, int pageSize, int customerId)
        {
            BlogPagingModel model = new BlogPagingModel();

            var query = _blogRepository.Table;

            if (tagId != 0)
            {
                var blogTagMappers = _blogTagMapperRepository.Table.Where(x => x.TagId == tagId).ToList();
                if (blogTagMappers != null)
                {
                    var blogIds = blogTagMappers.Select(bt => { return(bt.BlogId); }).ToArray();
                    query = query.Where(b => blogIds.Contains(b.Id));
                }
            }
            var blogs = query.ToList();

            model.TotalItems = blogs.Count;

            blogs = blogs.OrderByDescending(b => b.CreatedOn).Skip(pageIndex * pageSize).Take(pageSize).ToList();

            //var blogs = query.ToList();

            model.PageSize   = pageSize;
            model.PageNumber = pageIndex + 1;
            //model.PageIndex = pageIndex;
            model.TotalPages = (int)Math.Ceiling((double)model.TotalItems / (double)model.PageSize);

            //model.TotalPages
            model.Blogs = new List <BlogModel>();
            foreach (var b in blogs)
            {
                string    cacheKey = RBMemCacheKeys.CUSTOMERINFOKEY + b.CustomerId.ToString();
                Customer  customer = (Customer)_memoryCache.Get(cacheKey);
                BlogModel m        = new BlogModel()
                {
                    Content      = b.Content,
                    CreatedOn    = b.CreatedOn,
                    CustomerId   = b.CustomerId,
                    Id           = b.Id,
                    ReleasedOn   = b.ReleasedOn,
                    Title        = b.Title,
                    CustomerName = customer != null ? customer.Name : "",
                    Editable     = b.CustomerId == customerId?true : false,
                    Tags         = string.Join(",", _tagService.GetBlogTags(b.Id).Select(t => { return(t.TagName); }).ToList())
                };
                //if(customer!=null)

                model.Blogs.Add(m);
            }
            return(model);
        }
예제 #4
0
        public async Task <IViewComponentResult> InvokeAsync(BlogPagingModel model)
        {
            // async Task<IViewComponentResult>
            //ContentViewComponentResult
            //IViewComponentResult
            //HtmlContentViewComponentResult
            //http://www.cnblogs.com/sanshi/p/7750497.html
            //http://www.cnblogs.com/shenba/p/6629212.html
            const int size            = 5;
            bool      isAuthenticated = false;

            //var blogs = _blogRepository.Table.OrderByDescending(b => b.releasedOn).TakeLast(10);
            if (model == null)
            {
                model = new BlogPagingModel();
            }
            if (model.Blogs == null)
            {
                isAuthenticated = HttpContext.User.Identity.IsAuthenticated;
                int CustomerId = -1;
                if (isAuthenticated)
                {
                    CustomerId = int.Parse(HttpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Sid).Value);
                }
                int index = model.PageNumber == 0 ? 0 : model.PageNumber - 1;
                model          = _blogService.GetPagedBlogsByTagId(0, index, size, CustomerId);
                model.Editable = isAuthenticated;
                if (model.Blogs.Count > 0)
                {
                    return(View(model));
                }
                else
                {
                    return(View("NoData", "0数据"));
                }
                //try
                //{
                //    blogs = _blogRepository.Table.OrderByDescending(b => b.ReleasedOn).Take(10).ToList();
                //}
                //catch (Exception ex)
                //{
                //    return View("NoData", ex.Message);
                //}
            }
            //if (blogs.Count>0)
            //{
            //    var cs = _customerRepository.Table.FirstOrDefault();//执行过一次就可以在以下b.Customer里呼出了,因为没有lazyload 可能core做了缓存
            //    BlogPagingModel model = new BlogPagingModel();
            //    IPagedList<Blog> pagedBlogs = new PagedList<Blog>(blogs, 0, 10);
            //    PrepareBlogPagingModel(model,pagedBlogs);
            //    //model.Blogs = new List<BlogModel>();
            //    //foreach (Blog b in blogs)
            //    //{
            //    //    var blogModel = new BlogModel()
            //    //    {
            //    //        Id = b.Id,
            //    //        Title = b.Title,
            //    //        Content = b.Content,
            //    //        CreatedOn = b.CreatedOn,
            //    //        ReleasedOn = b.ReleasedOn,
            //    //        CustomerName = b.Customer.CustomerName
            //    //    };
            //    //    model.Blogs.Add(blogModel);
            //    //}
            //    //var isAuthenticated = HttpContext.User.Identity.IsAuthenticated;
            //    //if (isAuthenticated)
            //    //{
            //    //    var CustomerId = HttpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Sid).Value;
            //    //    int id = int.Parse(CustomerId);
            //    //    if (id == 1)
            //    //    {
            //    //        model.Editable = true;
            //    //    }
            //    //}
            //    return View(model);
            //}
            else
            {
                //BlogPagingModel model = new BlogPagingModel();
                //IPagedList<Blog> blogPaged = new PagedList<Blog>(blogs, 0, 10);
                //PrepareBlogPagingModel(model, blogPaged, 0);
                return(View(model));
            }
        }