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));
        }
示例#3
0
        /// <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);
        }
示例#4
0
        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);
        }
示例#6
0
        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());
        }