/// <summary> /// The get all paged. /// </summary> /// <param name="searchPattern"> /// The name. /// </param> /// <param name="companyId"> /// The company Id. /// </param> /// <param name="pageIndex"> /// The page index. /// </param> /// <param name="pageSize"> /// The page size. /// </param> /// <param name="totalCount"> /// The total count. /// </param> /// <returns> /// The <see cref="IEnumerable{T}"/>. /// </returns> public IEnumerable <Category> GetAllByCompanyAndNamePaged(string searchPattern, int companyId, int pageIndex, int pageSize, out int totalCount) { var searchIds = new List <int>(); if (pageIndex <= default(int)) { pageIndex = 1; } var queryOver = new DefaultQueryOver <Category, int>().GetQueryOver(); if (companyId != 0) { queryOver = queryOver.Where(x => x.Company.Id == companyId); } if (!string.IsNullOrWhiteSpace(searchPattern)) { searchIds = this.fullTextModel.Search(searchPattern, typeof(Category), int.MaxValue).ToList(); queryOver = queryOver.AndRestrictionOn(x => x.Id).IsIn(searchIds); } QueryOver <Category, Category> rowCountQuery = queryOver.ToRowCountQuery(); totalCount = this.Repository.FindOne <int>(rowCountQuery).Value; QueryOver <Category> pagedQuery = queryOver.OrderBy(x => x.CategoryName).Asc; if (pageSize > 0) { pagedQuery = pagedQuery.Take(pageSize).Skip((pageIndex - 1) * pageSize); } return(searchIds.Any() ? this.Repository.FindAll(pagedQuery).ToList().OrderBy(x => searchIds.IndexOf(x.Id)) : this.Repository.FindAll(pagedQuery)); }
public IEnumerable <Contact> GetAllPaged(int pageIndex, int pageSize, out int totalCount) { if (pageIndex <= default(int)) { pageIndex = 1; } var queryOver = new DefaultQueryOver <Contact, int>().GetQueryOver(); var rowCountQuery = queryOver.ToRowCountQuery(); totalCount = this.Repository.FindOne <int>(rowCountQuery).Value; var pagedQuery = queryOver.OrderBy(x => x.FirstName).Asc.ThenBy(x => x.LastName).Asc.Take(pageSize).Skip((pageIndex - 1) * pageSize); return(this.Repository.FindAll(pagedQuery)); }