public ObjectInstance Paged(object pagedParams) { PagedParams parameters = new PagedParams(this.Engine.Object.InstancePrototype); if (pagedParams != null && pagedParams != Undefined.Value && pagedParams != Null.Value) { parameters = JurassicHelper.Coerce <PagedParams>(this.Engine, pagedParams); } return(BuildPagedResult(parameters)); }
public async Task <ActionResult> GetPublications([FromQuery] PagedParams param) { var queryable = _repoWrapper.Publication.Queryable() .Include(p => p.Photos) .Include(p => p.Brand) .Include(p => p.Fuel); var publications = await PagedList <Publication> .CreateAsync(queryable.OrderByDescending( c => c.Id), param.PageNumber, param.PageSize); Response.AddPagination(publications.CurrentPage, publications.PageSize, publications.TotalCount, publications.TotalPages); return(Ok(publications.ToList())); }
public async Task <PagedList <Book> > GetAll(PagedParams bookParams) { return(await uow.Books.Get(include : x => x.Include(y => y.BookCategory).Include(y => y.Publisher), filter : null, orderBy : null, bookParams.PageNumber, bookParams.PageSize)); }
public async Task <IActionResult> FilterPublications(PublicationSearchModel filters, [FromQuery] PagedParams param) { var queryable = SearchPublication(filters); var publications = await PagedList <Publication> .CreateAsync(queryable.OrderByDescending( c => c.Id), param.PageNumber, param.PageSize); Response.AddPagination(publications.CurrentPage, publications.PageSize, publications.TotalCount, publications.TotalPages); return(Ok(publications.ToList())); }
private ObjectInstance BuildPagedResult(PagedParams parameters) { if (String.IsNullOrEmpty(parameters.Sql)) { parameters.Sql = ""; } if (String.IsNullOrEmpty(parameters.PrimaryKeyField)) { parameters.PrimaryKeyField = this.PrimaryKeyField; } if (String.IsNullOrEmpty(parameters.PrimaryKeyField)) { throw new JavaScriptException(this.Engine, "Error", "The property named 'primaryKeyField' must be populated with the name of the primary key field to use."); } if (String.IsNullOrEmpty(parameters.Where)) { parameters.Where = ""; } if (String.IsNullOrEmpty(parameters.OrderBy)) { parameters.OrderBy = parameters.PrimaryKeyField; } if (String.IsNullOrEmpty(parameters.Columns)) { parameters.Columns = "*"; } if (parameters.PageSize <= 0) { parameters.PageSize = 20; } if (parameters.CurrentPage <= 0) { parameters.CurrentPage = 1; } var result = this.Engine.Object.Construct(); string countSql = string.IsNullOrEmpty(parameters.Sql) ? string.Format("SELECT COUNT({0}) FROM {1}", parameters.PrimaryKeyField, GetFullTableName()) : string.Format("SELECT COUNT({0}) FROM ({1}) AS PagedTable", parameters.PrimaryKeyField, parameters.Sql); if (!string.IsNullOrEmpty(parameters.Where)) { if (!parameters.Where.Trim().StartsWith("where", StringComparison.CurrentCultureIgnoreCase)) { parameters.Where = " WHERE " + parameters.Where; } } var query = string.IsNullOrEmpty(parameters.Sql) ? string.Format( "SELECT {0} FROM (SELECT ROW_NUMBER() OVER (ORDER BY {1}) AS Row, {0} FROM {2} {3}) AS Paged ", parameters.Columns, parameters.OrderBy, GetFullTableName(), parameters.Where) : string.Format( "SELECT {0} FROM (SELECT ROW_NUMBER() OVER (ORDER BY {1}) AS Row, {0} FROM ({2}) AS PagedTable {3}) AS Paged ", parameters.Columns, parameters.OrderBy, parameters.Sql, parameters.Where); var pageStart = (parameters.CurrentPage - 1) * parameters.PageSize; query += string.Format(" WHERE Row > {0} AND Row <={1}", pageStart, (pageStart + parameters.PageSize)); countSql += parameters.Where; var totalRecords = (int)Scalar(countSql, parameters.Args); var totalPages = totalRecords / parameters.PageSize; if (totalRecords % parameters.PageSize > 0) { totalPages += 1; } result.SetPropertyValue("TotalRecords", totalRecords, false); result.SetPropertyValue("TotalPages", totalPages, false); result.SetPropertyValue("Items", Query(string.Format(query, parameters.Columns, TableName), parameters.Args), false); return(result); }
public async Task <ActionResult <ApiResponsePagination> > Get([FromQuery] PagedParams bookParams) { var books = mapper.Map <PagedList <BookDto> >(await bookService.GetAll(bookParams)); return(new ApiResponsePagination("Books retrived", books.Items, books.Pagination)); }