public virtual OperationResult ListItems( int?pageNumber, int?pageSize, string sortCol, string sortDir, string searchTerms) { var result = new OperationResult(); sortCol = sortCol ?? "Name"; sortDir = sortDir ?? "ASC"; string[] searchKeywords = !searchTerms.IsNullOrWhiteSpace() ? searchTerms.Split(',') : new string[] { }; result.AddResultObject("keywords", searchKeywords); int totalNumberOfRecords; int totalNumberOfPages; int offset; int offsetUpperBound; var list = FindAllEntitiesByCriteria( pageNumber, pageSize, out totalNumberOfRecords, sortCol, sortDir, out offset, out offsetUpperBound, out totalNumberOfPages, result, BuildSearchFilterPredicate(searchKeywords)); result.AddResultObject("list", list); return(result); }
public OperationResult ListItems( int?pageNumber, int?pageSize, string sortCol, string sortDir, string searchTerms) { var result = new OperationResult(); int pageIndex = pageNumber ?? 1; int sizeOfPage = pageSize ?? 10; sortCol = sortCol ?? "Name"; sortDir = sortDir ?? "ASC"; searchTerms = searchTerms.IsNullOrWhiteSpace() ? string.Empty: searchTerms; int totalNumberOfRecords; int totalNumberOfPages; int offset; int offsetUpperBound; var list = FindAllEntitiesByCriteria( pageNumber, pageSize, out totalNumberOfRecords, sortCol, sortDir, out offset, out offsetUpperBound, out totalNumberOfPages, result, searchTerms); result.AddResultObject("list", list); result.AddResultObject("searchTerms", searchTerms); result.AddResultObject("sortCol", sortCol); result.AddResultObject("sortDir", sortDir); return(result); }
protected virtual IEnumerable <TEntity> FindAllEntitiesByCriteria( int?pageNumber, int?pageSize, out int totalRecords, string sortColumn, string sortDirection, out int offset, out int offsetUpperBound, out int totalNumberOfPages, OperationResult result, ExpressionStarter <TEntity> searchPredicate) { if (Repository == null) { throw new Exception(nameof(Repository)); } if (sortColumn.IsNullOrWhiteSpace()) { Error.ArgumentNull(nameof(sortColumn)); } if (sortDirection.IsNullOrWhiteSpace()) { Error.ArgumentNull(nameof(sortDirection)); } int pageIndex = pageNumber ?? 1; int sizeOfPage = pageSize ?? 10; string[] keywords = result.ObjectsDictionary["keywords"] as string[]; var items = Repository.FindAllEntitiesByCriteria( pageIndex, sizeOfPage, out totalRecords, sortColumn, sortDirection, searchPredicate); totalNumberOfPages = (int)Math.Ceiling((double)totalRecords / sizeOfPage); offset = (pageIndex - 1) * sizeOfPage + 1; offsetUpperBound = offset + (sizeOfPage - 1); if (offsetUpperBound > totalRecords) { offsetUpperBound = totalRecords; } result.AddResultObject("sortCol", sortColumn); result.AddResultObject("sortDir", sortDirection); result.AddResultObject("offset", offset); result.AddResultObject("pageIndex", pageIndex); result.AddResultObject("sizeOfPage", sizeOfPage); result.AddResultObject("offsetUpperBound", offsetUpperBound); result.AddResultObject("totalNumberOfRecords", totalRecords); result.AddResultObject("totalNumberOfPages", totalNumberOfPages); result.AddResultObject("searchTerms", string.Join(",", keywords.Select(i => i.ToString()))); return(items); }
protected override IEnumerable <Artist> FindAllEntitiesByCriteria( int?pageNumber, int?pageSize, out int totalRecords, string sortColumn, string sortDirection, out int offset, out int offsetUpperBound, out int totalNumberOfPages, OperationResult result, params string[] keywords) { if (_artistsRepository == null) { throw new Exception(nameof(_artistsRepository)); } if (sortColumn.IsNullOrWhiteSpace()) { Error.ArgumentNull(nameof(sortColumn)); } if (sortDirection.IsNullOrWhiteSpace()) { Error.ArgumentNull(nameof(sortDirection)); } int pageIndex = pageNumber ?? 1; int sizeOfPage = pageSize ?? 10; var items = _artistsRepository.FindAllEntitiesByCriteria( pageIndex, sizeOfPage, out totalRecords, sortColumn, sortDirection, keywords); totalNumberOfPages = (int)Math.Ceiling((double)totalRecords / sizeOfPage); offset = (pageIndex - 1) * sizeOfPage + 1; offsetUpperBound = offset + (sizeOfPage - 1); if (offsetUpperBound > totalRecords) { offsetUpperBound = totalRecords; } result.AddResultObject("offset", offset); result.AddResultObject("pageIndex", pageIndex); result.AddResultObject("sizeOfPage", sizeOfPage); result.AddResultObject("offsetUpperBound", offsetUpperBound); result.AddResultObject("totalNumberOfRecords", totalRecords); result.AddResultObject("totalNumberOfPages", totalNumberOfPages); return(items); }