|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using YaBlogEngineMVC.Models;
using YaBlogEngineMVC.Models.ViewModels;
using System.Collections;
namespace YaBlogEngineMVC.Models.ViewModels
{
public class PaginatedViewBlogList : List<ViewBlogViewModel> , IEnumerable
{
private IUnitOfWork unitOfWork;
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public int TotalPages { get; private set; }
public PaginatedViewBlogList(IQueryable<Blog> source, int pageIndex, int pageSize)
{
this.unitOfWork = new UnitOfWork();
PageIndex = pageIndex;
PageSize = pageSize;
TotalCount = source.Count();
TotalPages = (int)Math.Ceiling(TotalCount / (double)PageSize);
List<Blog> blogs = source.Skip(PageIndex * PageSize).Take(PageSize).ToList();
if (blogs != null)
{
foreach (Blog b in blogs)
{
ViewBlogViewModel model = new ViewBlogViewModel
(
b,
unitOfWork.CommentsRepo.GetCommentsByBlogId(b.ID),
unitOfWork.CategoryRepo.GetCategoryById(b.CategoryId).CategoryName
);
this.Add(model);
}
}
}
public bool HasPreviousPage
{
get
{
return PageIndex > 0;
}
}
public bool HasNextPage
{
get
{
return PageIndex+1 < TotalPages;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
foreach (ViewBlogViewModel item in this)
{
yield return item;
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I Started my Programming career with C++. Later got a chance to develop Windows Form applications using C#. Currently using C#, ASP.NET & ASP.NET MVC to create Information Systems, e-commerce/e-governance Portals and Data driven websites.
My interests involves Programming, Website development and Learning/Teaching subjects related to Computer Science/Information Systems. IMO, C# is the best programming language and I love working with C# and other Microsoft Technologies.
- Microsoft Certified Technology Specialist (MCTS): Web Applications Development with Microsoft .NET Framework 4
- Microsoft Certified Technology Specialist (MCTS): Accessing Data with Microsoft .NET Framework 4
- Microsoft Certified Technology Specialist (MCTS): Windows Communication Foundation Development with Microsoft .NET Framework 4
If you like my articles, please visit my website for more: www.rahulrajatsingh.com[^]