/// <summary> /// Gets Paginated resource page /// </summary> /// <param name="itemsPerPage">items in one page</param> /// <param name="page">page number</param> /// <param name="filter">name filter</param> /// <returns>Page</returns> public Result <ResourcesPage> GetResourcesPaginated(int itemsPerPage, int page, object filter) { try { using (var context = new ResourceContext()) { var querry = context.Resources.Where(r => r.Name.Contains(filter.ToString())).AsQueryable(); var pagedList = new CnPagedList <Resource>(querry, page, itemsPerPage); var result = new ResourcesPage(pagedList.Items.ToList(), page, pagedList.TotalItemCount, itemsPerPage); return(new Result <ResourcesPage>(result)); } } catch (Exception ex) { return(new Result <ResourcesPage>(ex.Message)); } }
/// <summary> /// Gets Paginated resource page /// </summary> /// <param name="itemsPerPage">items in one page</param> /// <param name="page">page number</param> /// <param name="order">order</param> /// <param name="filter">name filter</param> /// <param name="orderBy">order property</param> /// <returns>Page</returns> public Result <ResourcesPage> GetResourcesPaginated(int itemsPerPage, int page, object filter, OrderType order, string orderBy) { try { var prop = TypeDescriptor.GetProperties(typeof(Resource)).Find(orderBy, true); using (var context = new ResourceContext()) { IQueryable <Resource> querry; switch (order) { case OrderType.Normal: querry = context.Resources.Where(x => x.Name.Contains(filter.ToString())).OrderBy(x => prop.GetValue(x)).AsQueryable(); break; case OrderType.Invert: querry = context.Resources.Where(x => x.Name.Contains(filter.ToString())).OrderByDescending(x => prop.GetValue(x)).AsQueryable(); break; default: querry = context.Resources.Where(x => x.Name.Contains(filter.ToString())).OrderBy(x => prop.GetValue(x)).AsQueryable(); break; } var pagedList = new CnPagedList <Resource>(querry, page, itemsPerPage); var result = new ResourcesPage(pagedList.Items.ToList(), page, pagedList.TotalItemCount, itemsPerPage); return(new Result <ResourcesPage>(result)); } } catch (Exception ex) { return(new Result <ResourcesPage>(ex.Message)); } }