private void Worker_DoWork(object sender, DoWorkEventArgs e) { var data = Service.GetAllBooksAsync(Service.getRubrique().SelectedRubrique).Result; int count = data.Count(); int step = 0; RubriqueVM vm = Service.getRubrique(); _allBook.Clear(); page = new List <BookVM>(); for (int i = 0; i < count; i++) { if (i >= count) { break; } _allBook.Add(data[i]); if (step == vm.PageSize) { worker.ReportProgress(i); } else { page.Add(data[i]); step++; } } e.Result = step == vm.PageSize; }
private void adjustPages() { RubriqueVM vm = Service.getRubrique(); int count = _allBook.Count(); int pageSize = vm.PageSize; int totalPage = count / pageSize; totalPage = (totalPage == 0) ? 1 : totalPage; vm.Pages.Clear(); vm.pagesChanged(); Enumerable.Range(0, totalPage).ToList().ForEach(i => vm.Pages.Add("Page " + (i + 1) + "/" + totalPage)); vm.SelectedPage = vm.Pages.FirstOrDefault(); }
private void search_DoWork(object sender, DoWorkEventArgs e) { //var data = Service.GetAllBooksAsync(Service.getRubrique().SelectedRubrique).Result; int count = _allBook.Count(); RubriqueVM vm = Service.getRubrique(); int offset = (vm.Pages.IndexOf(vm.SelectedPage)) * vm.PageSize; int limit = offset + vm.PageSize; int top = (limit < count) ? vm.PageSize : count - offset; top = (top < 0) ? 0 : top; List <BookVM> page = new List <BookVM>(); _allBook.ToList().GetRange(offset, top).ForEach(b => page.Add(b)); this.page = page; e.Result = page; }