public List<SiteNav> PerformDataPagingQueryableContent(Guid siteID, bool bActiveOnly,
int pageSize, int pageNumber, string sortField, string sortDir, IQueryable<vw_carrot_Content> QueryInput)
{
IEnumerable<SiteNav> lstContent = new List<SiteNav>();
int startRec = pageNumber * pageSize;
if (pageSize < 0 || pageSize > 200) {
pageSize = 25;
}
if (pageNumber < 0 || pageNumber > 10000) {
pageNumber = 0;
}
if (String.IsNullOrEmpty(sortField)) {
sortField = "CreateDate";
}
if (String.IsNullOrEmpty(sortDir)) {
sortDir = "DESC";
}
bool IsContentProp = false;
sortDir = sortDir.ToUpperInvariant();
sortField = (from p in ReflectionUtilities.GetPropertyStrings(typeof(vw_carrot_Content))
where p.ToLowerInvariant().Trim() == sortField.ToLowerInvariant().Trim()
select p).FirstOrDefault();
if (!String.IsNullOrEmpty(sortField)) {
IsContentProp = ReflectionUtilities.DoesPropertyExist(typeof(vw_carrot_Content), sortField);
}
if (IsContentProp) {
QueryInput = ReflectionUtilities.SortByParm<vw_carrot_Content>(QueryInput, sortField, sortDir);
} else {
QueryInput = (from c in QueryInput
orderby c.CreateDate descending
where c.SiteID == siteID
&& c.IsLatestVersion == true
&& (c.PageActive == bActiveOnly || bActiveOnly == false)
select c).AsQueryable();
}
lstContent = (from q in QueryInput
select new SiteNav(q)).Skip(startRec).Take(pageSize);
return lstContent.ToList();
}