Carrotware.CMS.Core.SiteNavHelperReal.PerformDataPagingQueryableContent C# (CSharp) Method

PerformDataPagingQueryableContent() public method

public PerformDataPagingQueryableContent ( System.Guid siteID, bool bActiveOnly, int pageSize, int pageNumber, string sortField, string sortDir, IQueryable QueryInput ) : List
siteID System.Guid
bActiveOnly bool
pageSize int
pageNumber int
sortField string
sortDir string
QueryInput IQueryable
return List
        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();
        }