Beispiel #1
0
        public async Task <IActionResult> ProductRequest(DataSourceRequest command,
                                                         ProcessOrderListModel model)
        {
            var(processOrderListModel, totalCount) = await _processOrderService.PrepareProductRequestListModel(model, command.Page, command.PageSize);

            var gridModel = new DataSourceResult
            {
                Data  = processOrderListModel,
                Total = totalCount
            };

            return(Json(gridModel));
        }
        public async Task <(IEnumerable <ProcessOrderModel> processOrderListModel, int totalCount)> PrepareProductRequestListModel(ProcessOrderListModel model, int pageIndex, int pageSize)
        {
            var query = from o in _orderRepository.Table
                        where o.OclientId == (int)_workContext.CurrentCustomer.ClientId &&
                        o.Oapproved == false
                        select new ProcessOrderModel
            {
                Ostatus       = o.Ostatus,
                OrdersId      = o.OrdersId,
                Oitem         = o.Oitem,
                Odescription  = o.Odescription,
                Ouom          = o.Ouom,
                Opkg          = o.Opkg,
                Oqty          = o.Oqty,
                OshipId       = o.OshipId,
                OshipName     = o.OshipName,
                OsellingPrice = o.OsellingPrice,
                OvendorId     = o.OvendorId,
                OvendorName   = o.OvendorName,
                Ohold         = o.Ohold,
                Odate         = o.Odate,
                VitemId       = o.VitemId
            };

            //Sorting
            if (model.intSort == 1)
            {
                query = query.OrderBy(c => c.OshipName);
            }

            if (model.intSort == 2)
            {
                query = query.OrderBy(c => c.Odate);
            }

            if (model.intSort == 3)
            {
                query = query.OrderBy(c => c.Oitem);
            }

            if (model.intSort == 9)
            {
                query = query.OrderBy(c => c.Oqty);
            }

            if (model.intSort == 10)
            {
                query = query.OrderBy(c => c.Total);
            }

            if (model.intSort == 4)
            {
                query = query.OrderBy(c => c.OvendorName);
            }

            var processOrderListModel = query.ToList();

            int totalCount = processOrderListModel.Count;
            int pageOffSet = (Convert.ToInt32(pageIndex) - 1) * 10;

            processOrderListModel = processOrderListModel.Skip(pageOffSet).Take(Convert.ToInt32(pageSize)).ToList();

            return(processOrderListModel, totalCount);
        }