public CheckPagingResult SearchWithPagination(CheckPagingRequest r) { CheckPagingResult result = new CheckPagingResult(); result = _checkRepository.GetCheckWithPaging(r); return(result); }
private void DataPagerOnPageIndexChanged(object sender, PageIndexChangedEventArgs e) { CheckPagingResult result = Search(e.NewPageIndex, DataPager.PageSize); var filteredItem = CollectionViewSource.GetDefaultView( new ObservableCollection <Check>(result.Results)); DataPager.ItemCount = result.TotalItems; _c.PagedChecks = filteredItem; }
private CheckPagingResult Search(int currentPage, int pageSize) { CheckService service = new CheckService(_checkRepository); CheckPagingRequest r = new CheckPagingRequest(); SearchCriteria s = BuilSearchQuery(); r.PageSize = pageSize; r.CurrentPage = currentPage; r.SearchCriteria = s; CheckPagingResult result = service.SearchWithPagination(r); return(result); }
//The library Devart DotConnect for SQLite has minor bugs when arranging data with skip and take. //Basically, what happens is 'Order By' is not being generated in SQL using Skip and take. //My work around is to create SQL by hand. public CheckPagingResult GetCheckWithPaging(CheckPagingRequest r) { CheckPagingResult result = new CheckPagingResult(); string query = "Select * From Checks"; string queryForCount = "Select Count(Checks.Id) From Checks"; query = AddRelation(r, query); queryForCount = AddRelation(r, queryForCount); queryForCount = BuildCondition(r, queryForCount); result.TotalItems = _context.Database.SqlQuery <int>(queryForCount).First(); query = BuildCondition(r, query); query = BuildOrderBy(r, query); query = BuildPagination(r, query); result.Results = _context.Checks.SqlQuery(query).ToList(); result.PageCount = result.TotalItems / r.PageSize; return(result); }