public IActionResult Index(int index) { BlogPagingModel blogPagingModel = new BlogPagingModel(); blogPagingModel.PageNumber = index; return(View(blogPagingModel)); }
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; } } }
/// <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); }
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)); } }