public IQueryable <OrderPlacing> GetOrders(int pageIndex, int pageSize, OrderStorageState orderStorageState) { var query = GetOrderStorageStateQuery(orderStorageState); query = query.OrderByDescending(order => order.OrderCreateTime); return(query.Skip((pageIndex - 1) * pageSize).Take(pageSize)); }
public PagedResult <OrderStorageDto> GetOrders(int pageIndex, int pageSize, OrderStorageState orderStorageState) { var bindingList = new BindingList <OrderStorageDto>(); var list = _orderRepository.GetOrders(pageIndex, pageSize, orderStorageState) .ProjectTo <OrderStorageDto>(_mapper.ConfigurationProvider).ToList(); ////获得记录总数 var count = _orderRepository.GetOrderStateCount(orderStorageState); list.ForEach(o => bindingList.Add(o)); return(new PagedResult <OrderStorageDto>(pageIndex, pageSize, count, bindingList)); }
/// <summary> /// 从数据库获取分页的数据 /// </summary> /// <param name="pageIndex"> 哪一页的数据</param> /// <param name="orderStorageState">获取订单状况</param> /// <returns></returns> private BindingList <OrderStorageDto> LoadData(int pageIndex, OrderStorageState orderStorageState) { var orderService = AutofacContainer.GetInstance().GetObject <IOrderService>(); var result = orderService.GetOrders(pageIndex, PageSize, orderStorageState); var totalCount = result.TotalCount; //分页数量 _pageCount = (int)(totalCount % PageSize == 0 ? totalCount / PageSize : (totalCount / PageSize) + 1); _currentPage = _pageCount == 0 ? 0 : pageIndex; return(result.CurrentPageData); }
private void MultiThreadingBindingOrderData(int pageIndex, OrderStorageState orderStorageState) { //绑定数据源时会触发SelectionChanged dgvOrderList.SelectionChanged -= dgvOrderList_SelectionChanged; Task.Factory.StartNew(() => LoadData(pageIndex, orderStorageState)) .ContinueWith(preTask => { _dgvBindingSource.DataSource = DealStorageAdvanceDays(preTask.Result); //此句位置很重要 会触发SelectionChanged this.dgvOrderList.ClearSelection(); dgvOrderList.SelectionChanged += dgvOrderList_SelectionChanged; this.lbInfo.Text = $"第{_currentPage}页/共{_pageCount}页 "; }, TaskScheduler.FromCurrentSynchronizationContext()); }
private IQueryable <OrderPlacing> GetOrderStorageStateQuery(OrderStorageState orderStorageState) { IQueryable <OrderPlacing> query; query = DbSet.AsNoTracking(); switch (orderStorageState) { case OrderStorageState.StorageFinished: query = query.Where(o => o.StorageFinishedFlag == "1"); break; case OrderStorageState.NoneStorage: query = query.Where(o => o.StorageFinishedFlag == "0"); break; } return(query); }
private void RadioBtnNotStorage_CheckedChanged(object sender, EventArgs e) { //改变会触发两次这个事件 造成偶尔访问数据库有问题 这里判断处理下 var radioButton = (RadioButton)sender; if (radioButton.Checked == false) { return; } if (radioBtnNotStorage.Checked) { _orderStorageState = OrderStorageState.NoneStorage; } //部分领料 else { _orderStorageState = OrderStorageState.StorageFinished; } MultiThreadingBindingOrderData(1, _orderStorageState); }
public int GetOrderStateCount(OrderStorageState orderStorageState) { var query = GetOrderStorageStateQuery(orderStorageState); return(query.Count()); }