public async Task <IActionResult> GetEmployeesAsync([FromQuery] GetEmployeesInput input) { var request = new PaginateEmployeesRequest { PageIndex = input.PageIndex, PageSize = input.PageSize, DepartmentId = input.DepartmentId, }; var response = await _organizationClient.PaginateEmployeesAsync(request); var result = new PaginationResult <EmployeeSummary> { PageIndex = response.PageIndex, PageSize = response.PageSize, ItemCount = response.ItemCount, Items = response.Items .Select(x => new EmployeeSummary { Id = x.Id, Name = x.Name, DisplayName = x.DisplayName, DepartmentId = x.DepartmentId, JobId = x.JobId, }) .ToList(), }; return(Ok(result)); }
private async Task <(HttpResponseMessage, bool)> GetResponseWithDelay(CancellationToken cancellationToken) { // Adding a short delay to simulate a long running operation, e.g. a web request await Task.Delay(10); var httpResponse = new HttpResponseMessage(System.Net.HttpStatusCode.OK); var memStream = new MemoryStream(); var usersPaginated = new PaginationResult <User> { Page = 1, PageSize = 10, TotalCount = 1, Data = new List <User> { new User { Email = "*****@*****.**", UserName = "******" } } }; var usersJson = JsonConvert.SerializeObject(usersPaginated); using (var sw = new StreamWriter(memStream, Encoding.UTF8, 2048, true)) { await sw.WriteAsync(usersJson); } memStream.Position = 0; httpResponse.Content = new StreamContent(memStream); return(httpResponse, cancellationToken.IsCancellationRequested); }
public async Task <IActionResult> GetMostRecentUsers(int skip = 0, int limit = 10) { List <User> users; var rv = new PaginationResult <User>(); try { var userWorker = this._users.GetMostRecentAsync(skip, limit); var query = await userWorker.AwaitBackground(); users = query.Values.Select(user => new User { Email = user.Email, FirstName = user.FirstName, LastName = user.LastName, PhoneNumber = user.PhoneNumber, Id = user.Id, RegisteredAt = user.RegisteredAt.ToUniversalTime(), Roles = this._users.GetRoles(user) }).ToList(); rv.Values = users; rv.Count = query.Count; } catch (Exception ex) { this.m_logger.LogInformation(ex, "Unable to fetch recent users!"); return(this.BadRequest(new Status { Message = "Unable to fetch recent users!", ErrorCode = ReplyCode.UnknownError })); } return(this.Ok(rv)); }
public PaginationResult <PaymentRecord> Select(int pageIndex, int pageSize, string moneySourceId, string type, DateTime startDate, DateTime endDate) { var param = new[] { new SqlParameter("@pageIndex", pageIndex), new SqlParameter("@pageSize", pageSize), new SqlParameter("@moneySourceId", moneySourceId), new SqlParameter("@type", type), new SqlParameter("@startDate", startDate), new SqlParameter("@endDate", endDate), }; return(SqlHelper.ExecuteReader(SP_PAYMENT_SELECT, param, reader => { var result = new PaginationResult <PaymentRecord> { Data = Read(reader) }; reader.NextResult(); reader.Read(); result.Total = Convert.ToInt32(reader["Total"]); return result; })); }
public async Task <IActionResult> Find([FromBody] SearchQuery query, [FromQuery] int skip = 0, [FromQuery] int limit = 0) { PaginationResult <User> rv; var result = await this._users.FindByEmailAsync(query.Query, skip, limit).AwaitBackground(); var users = result.Select(user => { var roles = this._users.GetRoles(user); return(new User { Email = user.Email, FirstName = user.FirstName, LastName = user.LastName, PhoneNumber = user.PhoneNumber, Id = user.Id, RegisteredAt = user.RegisteredAt.ToUniversalTime(), Roles = roles }); }).ToList(); rv = new PaginationResult <User> { Count = await this._users.CountFindAsync(query.Query).AwaitBackground(), Values = users }; return(new OkObjectResult(rv)); }
public virtual IHttpActionResult GetView(GenericDataFormat data) { var queryItems = GetWithOptions(data); dynamic pageItems = null; string typ = typeof(T).FullName; if (queryItems is List <Object> ) { pageItems = ((List <Object>)queryItems); } else { var query = (IQueryable <T>)queryItems; pageItems = query.ToList <T>(); } //remove paging data.Paging = null; queryItems = GetWithOptions(data); int TotalItemsCount = 0; if (queryItems is List <Object> ) { TotalItemsCount = ((List <Object>)queryItems).Count(); var ObjectsResult = new PaginationResult <Object> { TotalItemsCount = TotalItemsCount, PageItems = pageItems }; return(Content(HttpStatusCode.OK, ObjectsResult)); } else { var query = (IQueryable <T>)queryItems; TotalItemsCount = query.Count(); } //var serializer = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue }; //string s = serializer.Serialize(new PaginationResult<T> //{ // TotalItemsCount = TotalItemsCount, // PageItems = pageItems //}); var result = new PaginationResult <T> { TotalItemsCount = TotalItemsCount, PageItems = pageItems }; //var resp = new HttpResponseMessage() //{ // Content = // new StringContent(serializer.Serialize(result), System.Text.Encoding.UTF8, "application/json") //}; return(Content(HttpStatusCode.OK, result)); //return ResponseMessage(resp); }
/// <summary> /// EF单实体查询封装 /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="Query">IQueryable对象</param> /// <param name="gridParam">过滤条件</param> /// <returns>查询结果</returns> public static PaginationResult <T> PageQuery <T>(this IQueryable <T> Query, QueryCondition gridParam) { //查询条件 EFFilter filter = GetParameterSQL <T>(gridParam); var query = Query.Where(filter.Filter, filter.ListArgs.ToArray()); //查询结果 PaginationResult <T> result = new PaginationResult <T>(); if (gridParam.IsPagination) { int PageSize = gridParam.PageSize; int PageIndex = gridParam.PageIndex < 0 ? 0 : gridParam.PageIndex; //获取排序信息 string sort = GetSort(gridParam, typeof(T).FullName); result.Data = query.OrderBy(sort).Skip(PageIndex * PageSize).Take(PageSize).ToList <T>(); if (gridParam.IsCalcTotal) { result.Total = query.Count(); result.TotalPage = Convert.ToInt32(Math.Ceiling(result.Total * 1.0 / PageSize)); } else { result.Total = result.Data.Count(); } } else { result.Data = query.ToList(); result.Total = result.Data.Count(); } return(result); }
public PaginationResult <Category> RetrieveCategoryWithPagination(int page, int itemPerPage, string filter) { PaginationResult <Category> result = new PaginationResult <Category>(); if (string.IsNullOrEmpty(filter)) { result.Results = context.Set <Category>().OrderBy(x => x.CategoryName) .Skip(page).Take(itemPerPage).ToList(); if (result.Results.Count > 0) { result.TotalRecords = context.Set <Category>().Count(); } } else { result.Results = context.Set <Category>() .Where(x => x.CategoryName.ToLower().Contains(filter.ToLower())) .OrderBy(x => x.CategoryName) .Skip(page).Take(itemPerPage).ToList(); if (result.Results.Count > 0) { result.TotalRecords = context.Set <Category>().Where(x => x.CategoryName.ToLower().Contains(filter.ToLower())) .Count(); } } return(result); }
public async Task <IActionResult> GetPermissionsAsync([FromQuery] PaginationOptions input) { var request = new PaginatePermissionsRequest { PageIndex = input.PageIndex, PageSize = input.PageSize }; var response = await _authorizationClient.PaginatePermissionsAsync(request); var result = new PaginationResult <PermissionSummary> { PageIndex = response.PageIndex, PageSize = response.PageSize, ItemCount = response.ItemCount, Items = response.Items .Select(x => new PermissionSummary { Id = x.Id, Code = x.Code, Name = x.Name, IsEnabled = x.IsEnabled, }) .ToList(), }; return(Ok(result)); }
public PaginationResult List(string param) { dynamic data_param = JObject.Parse(param); int master_id = data_param.master_id; if (data_param.master_id == null) { data_param.master_id = ""; } if (data_param.resource_id == null) { data_param.resource_id = ""; } int resource_id = data_param.resource_id == "" ? 0 : data_param.resource_id; List <ParamSql> listParam = new List <ParamSql>(); PaginationResult pages = new PaginationResult(); List <UserPermission> permissions = new List <UserPermission>(); if (master_id != 0) { list += "and per_user_id = @per_user_id "; listParam.Add(new ParamSql("@per_user_id", master_id.ToString())); } if (resource_id != 0) { list += "and per_resource_id = @per_resource_id "; listParam.Add(new ParamSql("@per_resource_id", resource_id.ToString())); } list += " order by res_name"; cmd = new NpgsqlCommand(list, conn); foreach (ParamSql p in listParam) { cmd.Parameters.AddWithValue(p.name, Convert.ToInt32(p.value)); } reader = cmd.ExecuteReader(); while (reader.Read()) { UserPermission permission = new UserPermission(); permission.per_id = (int)reader["per_id"]; permission.per_resource_id = (int)reader["per_resource_id"]; permission.per_create = (bool)reader["per_create"]; permission.per_read = (bool)reader["per_read"]; permission.per_update = (bool)reader["per_update"]; permission.per_delete = (bool)reader["per_delete"]; permission.resource_key_word = reader["res_key_word"].ToString(); permission.resource_name = reader["res_name"].ToString(); permissions.Add(permission); } reader.Close(); pages.resultStatus = "success"; pages.data = new List <object>(permissions); return(pages); }
/// <summary> /// 根据首字母获取列表 /// </summary> /// <param name="json"></param> /// <returns></returns> public JObject GetGameListByLetter(int type, string letter, Pagination page) { using (var db = new RepositoryBase()) { Pagination outPage = new Pagination(); Expression <Func <Game, bool> > expression = PredicateExtensions.True <Game>(); PaginationResult <List <Game> > ResultPage = new PaginationResult <List <Game> >(); JObject ret = new JObject(); expression = expression.And(c => c.Platform == type); if (!string.IsNullOrEmpty(letter)) { expression = expression.And(c => c.Letter == letter); } ResultPage.datas = db.FindList(page, out outPage, expression); ResultPage.pagination = outPage; if (ResultPage.datas.Count > 0) { ret.Add(ResultInfo.Result, true); ret.Add(ResultInfo.Content, JToken.FromObject(ResultPage)); } return(ret); } }
public async Task <List <TModel> > GetAllAsync <TModel>(string cursor = null, CancellationToken ct = default(CancellationToken)) where TModel : ModelBase { var endpoint = _endpointResolver.WithSearchAfter <TModel>(100, cursor); _logger.Debug($"Getting multiple resource '{typeof(TModel).Name}' from URL '{endpoint}'."); var response = await GetAsync(endpoint, ct); if (!response.IsSuccessStatusCode) { return(new List <TModel>()); } PaginationResult <TModel> paginationResult = await response.Content.ReadAsJsonAsync <PaginationResult <TModel> >(); var items = paginationResult.GetItems(); var nextCursor = paginationResult.Links.GetCursor(); if (nextCursor != null) { var nextItems = await GetAllAsync <TModel>(nextCursor, ct); items.AddRange(nextItems); } return(items); }
public async Task <PagedServiceResult <LeaveDto> > GetAll(int page, int perPage) { var leaves = _context.Leaves; try { var pageOfLeaves = await _paginator .BuildPageResult(leaves, page, perPage, b => b.LeaveId) .ToListAsync(); var paginatedLeaves = _mapper.Map <List <LeaveDto> >(pageOfLeaves); var paginationResult = new PaginationResult <LeaveDto> { Results = paginatedLeaves, PerPage = perPage, PageNumber = page }; return(new PagedServiceResult <LeaveDto> { Data = paginationResult, Error = null }); } catch (Exception ex) { return(HandleDatabaseCollectionError <LeaveDto>(ex)); } }
public SearchListResultModel ListPagination(SearchListResultModel model, int page, int pageSize) { int startRow = 0; PaginationResult paginationResult = null; if (pageSize > 0) { //分頁 startRow = (page - 1) * pageSize; paginationResult = new PaginationResult() { CurrentPage = page, DataCount = model.Data.Count(), PageSize = pageSize, FirstPage = 1, LastPage = model.Data.Count() == 0 ? 1 : Convert.ToInt32(Math.Ceiling((decimal)model.Data.Count() / pageSize)) }; //若搜尋頁數超過最大頁數,則強制變為搜索最大頁數 if (page > paginationResult.LastPage) { paginationResult.CurrentPage = paginationResult.LastPage; startRow = (paginationResult.CurrentPage - 1) * pageSize; } } model.Data = model.Data.Skip(startRow).Take(pageSize).ToList(); model.Pagination = paginationResult; return(model); }
public async Task ExecutePaginationAsync_ShouldReturnRowsAsExpected_WhenAllSettingsAreUsed() { // Arrange const int pageSize = 25; const int pageNumber = 2; // Act PaginationResult result = await SUT.BuildCommand() .ForPagination() .Select("[SampleTableID]") .From("[dbo].[SampleTable]") .Where("[SampleTableID] < 100") .OrderBy("1") .PageSize(pageSize) .PageNumber(pageNumber) .ExecuteAsync(new CancellationToken()); // Assert result.ShouldNotBeNull(); result.HasData.ShouldBeTrue(); result.TotalCount.ShouldBeGreaterThan(0); result.DataTable.Columns.Count.ShouldBe(1); result.DataTable.Rows.Count.ShouldBe(pageSize); result.DataTable.Rows[0][0].ShouldNotBeNull(); Convert.ToInt32(result.DataTable.Rows[0][0]).ShouldBe(pageSize + 1); Convert.ToInt32(result.DataTable.Rows[pageSize - 1][0]).ShouldBe(pageSize * pageNumber); // Print WriteLine("Total Count: {0}", result.TotalCount); WriteLine(result.DataTable); }
public IActionResult Get(string name, int page = 1, int pageSize = 10, string sortBy = "id", string sortDirection = "asc") { List <SearchCriteria> criterias = new List <SearchCriteria>(); if (!string.IsNullOrEmpty(name)) { criterias.Add(new SearchCriteria { Field = "Name", Value = name, Operation = WhereOperation.Contains }); } var entities = _repository.GetAll(criterias, page, pageSize, sortBy, sortDirection).ToList(); var pagedRecord = new PaginationResult { Content = entities, TotalRecords = _repository.CountGetAll(criterias, page, pageSize), CurrentPage = page, PageSize = pageSize }; return(Ok(pagedRecord)); }
public IActionResult cliente(string identificacion, int perPage, int page) { PaginationResult <IEnumerable <ClienteViewModel> > clientes = new PaginationResult <IEnumerable <ClienteViewModel> >(); var query = db.Cliente.Include(c => c.TipoCliente).Select(c => new ClienteViewModel { Id = c.Id, NombreCompleto = c.Nombre + " " + c.Apellido, TipoCliente = c.TipoCliente.Tipocliente, TipoClienteId = c.TipoCliente.Id, Identificacion = c.Identificacion }); if (char.IsDigit(identificacion[0])) { query = query.Where(c => c.Identificacion.ToLower().StartsWith(identificacion.ToLower())); } else { query = query.Where(c => c.NombreCompleto.ToLower().Contains(identificacion.ToLower())); } clientes.Count = query.Count(); clientes.Result = query.Skip((page - 1) * perPage).Take(perPage).ToArray(); return(Json(clientes, confi)); }
public PaginationResult <Domain.Models.RoleRights> RetrieveRoleRightsWithPagination(int page, int itemsPerPage, string filter) { PaginationResult <RoleRights> result = new PaginationResult <RoleRights>(); if (string.IsNullOrEmpty(filter)) { result.Results = context.Set <RoleRights>().OrderBy(x => x.RightID).Skip(page).Take(itemsPerPage).ToList(); if (result.Results.Count > 0) { result.TotalRecords = context.Set <RoleRights>().Count(); } } else { result.Results = context.Set <RoleRights>() //.Where(x => x.RightID.Contains(filter.ToLower())) .OrderBy(x => x.RightID) .Skip(page) .Take(itemsPerPage).ToList(); if (result.Results.Count > 0) { result.TotalRecords = context.Set <Rights>() //.Where(x => x.RightID.ToLower().Contains(filter.ToLower())) .Count(); } } return(result); }
public PartialViewResult _CancelledByCustomerList(ReservationSC reservationSC, int?page = 1, int?pageSize = 10) { var Model = new PaginationResult <ReservationVM>(); if (page.GetValueOrDefault() == 0) { page = 1; } if (pageSize.GetValueOrDefault() == 0) { pageSize = 20; } reservationSC.ReservationStatusId = (int)SixtCancellationStatusEnum.CancelledByCustomer; if (reservationSC.ActionStepId == 5) //assign to me { reservationSC.AssignedToId = LoggedUserId; } try { var result = unitOfWork.VReservationListBL.GetAllReservations(reservationSC, page, pageSize); Model.Page = result.Page; Model.PageSize = result.PageSize; Model.Total = result.Total; Model.Items = result.Items.Select(r => new ReservationVM(r)).ToList(); return(PartialView(Model)); } catch (Exception e) { return(PartialView(null)); } }
public async Task <PaginationResult <UserSummary> > GetUsersAsync(UserOptions options) { var itemCount = await _userRepository.GetCountAsync(); var result = new PaginationResult <UserSummary>(options, itemCount); if (itemCount == 0) { return(result); } var roles = await _userRepository.GetUsersAsync(result.Offset, result.Limit); result.Items = roles .Select(x => new UserSummary { Id = x.Id, UserName = x.UserName, Name = x.Name, DisplayName = x.DisplayName, IsEnabled = x.IsEnabled, }) .ToList(); return(result); }
public PaginationResult List(string param, int user_id, string action) { connection = db.GetCon(); connection.Open(); PaginationResult objResult = new PaginationResult(); UserPermissionBusiness bus = new UserPermissionBusiness(connection); List <string> messages_list = new List <string>(); UserPermissionDao dao = new UserPermissionDao(connection, null); try { messages_list = bus.Validate(null, user_id, action); if (messages_list.Count > 0) { objResult.resultStatus = "error"; objResult.resultMessages = messages_list; connection.Close(); return(objResult); } objResult = dao.List(param); } finally { connection.Close(); } return(objResult); }
public PaginationResult <Employee> RetrieveEmployeeWithPagination(int page, int itemsPerPage, string filter) { PaginationResult <Employee> result = new PaginationResult <Employee>(); if (string.IsNullOrEmpty(filter)) { result.Results = context.Set <Employee>().OrderBy(x => x.LastName).Skip(page).Take(itemsPerPage).ToList(); if (result.Results.Count > 0) { result.TotalRecords = context.Set <Employee>().Count(); } } else { result.Results = context.Set <Employee>() .Where(x => x.LastName.ToLower().Contains(filter.ToLower())) .OrderBy(x => x.LastName) .Skip(page) .Take(itemsPerPage).ToList(); if (result.Results.Count > 0) { result.TotalRecords = context.Set <Employee>() .Where(x => x.FirstName.ToLower().Contains(filter.ToLower()) || x.LastName.ToLower().Contains(filter.ToLower()) || x.FullName.ToLower().Contains(filter.ToLower())).Count(); } } return(result); }
public async Task <List <TModel> > FilterAndGetAllAsync <TModel>(string queryString, string cursor = null, CancellationToken ct = default(CancellationToken)) where TModel : ModelBase { var endpoint = _endpointResolver.WithSearchAfter <TModel>(100, cursor); _logger.Debug($"Filtering resource '{typeof(TModel).Name}' from URL '{endpoint}' with query '{queryString}'."); var response = await GetAsync($"{endpoint}{queryString}", ct); if (!response.IsSuccessStatusCode) { throw new HttpRequestException($"Error while executing GET reques: {endpoint}{queryString}"); } PaginationResult <TModel> paginationResult = await response.Content.ReadAsJsonAsync <PaginationResult <TModel> >(); paginationResult.Code = response.StatusCode; List <TModel> items = paginationResult.GetItems(); var nextCursor = paginationResult.Links.GetCursor(); if (nextCursor != null) { var nextItems = await FilterAndGetAllAsync <TModel>(queryString, nextCursor, ct); items.AddRange(nextItems); } return(items); }
public PaginationResult <TEntity> GetAllPaging(Expression <Func <TEntity, bool> > predicate, Func <TEntity, bool> orderBy, SortDirection sortDirection, int pageIndex, int pageSize) { var query = _repository.GetAll().Where(predicate); int totalRow = query.Count(); if (sortDirection == SortDirection.Ascending) { query = query.OrderBy(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsQueryable(); } else { query = query.OrderByDescending(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsQueryable(); } var data = query.ToList(); var paginationSet = new PaginationResult <TEntity>() { Results = data, CurrentPage = pageIndex, RowCount = totalRow, PageSize = pageSize }; return(paginationSet); }
public JObject GetListButtons(JObject json, DateTime?StartTime, DateTime?EndTime) { json = json ?? new JObject(); Pagination page = json["Pagination"] == null?Pagination.GetDefaultPagination("ButtonText") : JsonConvert.DeserializeObject <Pagination>(json["Pagination"].ToString()); Expression <Func <Admin_Sys_Buttons, bool> > expression = PredicateExtensions.True <Admin_Sys_Buttons>(); PaginationResult <List <Admin_Sys_Buttons> > ResultPage = new PaginationResult <List <Admin_Sys_Buttons> >(); JObject result = new JObject(); var roleList = repository.FindList(page ?? Pagination.GetDefaultPagination("ButtonText"), out page, expression); if (!string.IsNullOrEmpty(json["Param"]["ButtonName"].ToString())) { roleList = roleList.FindAll(a => a.ButtonText == json["Param"]["ButtonName"].ToString()); } ResultPage.datas = roleList.ToList(); if (page != null) { ResultPage.pagination = page; } if (ResultPage.datas.Count > 0) { result.Add(ResultInfo.Result, JToken.FromObject(true)); result.Add(ResultInfo.Content, JToken.FromObject(ResultPage)); } else { result.Add(ResultInfo.Result, JToken.FromObject(false)); result.Add(ResultInfo.Content, JToken.FromObject("没有找到匹配数据")); } return(result); }
private async void LadeDatenAsync() { paging = await Task.Run(() => DB.SqlStatements.HoleHistorieSeite()); _dict = paging.List.ToDictionary(row => row.Log_ID, row => row); UpdateDataGridView(); }
public async Task <PaginationResult <Reservation> > GetReservationsAsync(QueryObject queryObject) { var query = _reservationDbContext.Reservations.EagerLoadRelatedObjects() .AsQueryable(); if (queryObject.UserId.HasValue) { query = query.Where(res => res.CreatedByUserId == queryObject.UserId.Value); } var dictionary = new Dictionary <string, Expression <Func <Reservation, object> > >() { [Constants.SortByCreatedDateTime] = reservation => reservation.CreatedDateTime, [Constants.SortByContactName] = reservation => reservation.Contact.Name, [Constants.SortByRanking] = reservation => reservation.UserLikesReservation.Count() }; if (queryObject?.SortBy != null && dictionary.ContainsKey(queryObject.SortBy)) { query = queryObject.IsSortAscending ? query.OrderBy(dictionary[queryObject.SortBy]) : query.OrderByDescending(dictionary[queryObject.SortBy]); } return(await PaginationResult <Reservation> .CreateAsync(query, queryObject.Page, queryObject.PageSize)); }
private void UpdateDataGridView()//List<HistorieModel> list = null) { if (_dict.Count == 0) { LadeDatenLabel.Text = "Keine Daten vorhanden!"; LadeDatenProgressspinner.Hide(); return; } source = new BindingSource { DataSource = _dict.Values }; HistorieGrid.DataSource = source; HistorieGrid.ColumnHeadersDefaultCellStyle.Padding = new Padding(5); if (paging.HasNext) { paging = paging.Next(); foreach (var p in paging.List) { _dict.Add(p.Log_ID, p); } LademehrButton.Enabled = true; } PanelHelper.Hide(); }
public async Task <PaginationResult <PermissionSummary> > GetPermissionsAsync(PermissionOptions options) { var itemCount = await _permissionRepository.GetCountAsync(); var result = new PaginationResult <PermissionSummary>(options, itemCount); if (itemCount == 0) { return(result); } var permissions = await _permissionRepository.GetPermissionsAsync(result.Offset, result.Limit); result.Items = permissions .Select(x => new PermissionSummary { Id = x.Id, Code = x.Code, Name = x.Name, IsEnabled = x.IsEnabled, }) .ToList(); return(result); }
internal static async Task <PaginationResult <TEntity> > GetPagedResultAsync <TEntity>( this IQueryable <TEntity> query, int page, int pageSize, string sortColumn, string sortOrder, string filterColumn, string filterQuery) where TEntity : class { if (!String.IsNullOrEmpty(filterColumn) && !String.IsNullOrEmpty(filterQuery)) { string saerch = String.Format("{0}.Contains({1})", filterColumn, filterQuery); query = query.Where(String.Format("{0}.Contains(@0)", filterColumn), filterQuery); } if (!String.IsNullOrEmpty(sortColumn)) { sortOrder = !String.IsNullOrEmpty(sortOrder) && sortOrder.ToUpper() == "ASC"? "ASC": "DESC"; query = query.OrderBy( String.Format("{0} {1}", sortColumn, sortOrder)); } var paginationResult = PaginationResult <TEntity> .New() .Update(page, pageSize, query.Count()); var pageCount = (double)paginationResult.RowCount / pageSize; paginationResult.UpdatePageCount((int)Math.Ceiling(pageCount)); var skip = (page - 1) * pageSize; var result = await query.Skip(skip).Take(pageSize).ToListAsync(); paginationResult.UpdateResult(result); return(paginationResult); }
public void It_should_render_null_when_no_page() { var result = new PaginationResult { TotalItems = 5, PageSize = 10, Page = 1 }; TestHelper.CreateHtmlHelper("http://www.example.org?page=1").PageLinks(result).Should().BeNull(); }
public void It_should_render_all_links_when_small_number_of_pages() { var result = new PaginationResult { TotalItems = 18, PageSize = 5, Page = 2 }; TestHelper.CreateHtmlHelper("http://www.example.org?page=2").PageLinks(result).ToString().Should() .Be("<ul class=\"pagination\"><li><a href=\"http://www.example.org:80/?page=1\">1</a></li><li class=\"active\"><a href=\"http://www.example.org:80/?page=2\">2</a></li><li><a href=\"http://www.example.org:80/?page=3\">3</a></li><li><a href=\"http://www.example.org:80/?page=4\">4</a></li></ul>"); }
public void It_should_render_summary_links_when_large_number_of_pages() { var result = new PaginationResult { TotalItems = 50, PageSize = 5, Page = 6 }; TestHelper.CreateHtmlHelper("http://www.example.org?page=6").PageLinks(result).ToString().Should() .Be("<ul class=\"pagination\"><li><a href=\"http://www.example.org:80/?page=1\"><<</a></li><li><a href=\"http://www.example.org:80/?page=5\"><</a></li><li><a href=\"http://www.example.org:80/?page=5\">5</a></li><li class=\"active\"><a href=\"http://www.example.org:80/?page=6\">6 / 10</a></li><li><a href=\"http://www.example.org:80/?page=7\">7</a></li><li><a href=\"http://www.example.org:80/?page=7\">></a></li><li><a href=\"http://www.example.org:80/?page=10\">>></a></li></ul>"); }