public async Task <IActionResult> Index(string keyword, string status, int pageIndex = 1, int pageSize = 5)
        {
            var request = new GetOrderPlanPagingRequest()
            {
                Keyword   = keyword,
                Status    = status,
                PageIndex = pageIndex,
                PageSize  = pageSize
            };
            var data = await _orderPlanApiClient.GetOrderPlanPaging(request);

            ViewBag.Keyword = keyword;

            return(View(data.ResultObj));
        }
        public async Task <IActionResult> GetAllPaging([FromQuery] GetOrderPlanPagingRequest request)
        {
            var result = await _orderPlanService.GetOrderPlanPaging(request);

            return(Ok(result));
        }
Beispiel #3
0
        public async Task <ApiResult <PagedResult <OrderPlanVm> > > GetOrderPlanPaging(GetOrderPlanPagingRequest bundle)
        {
            IQueryable <OrderPlan> query = _context.OrderPlans;

            if (!string.IsNullOrEmpty(bundle.Status))
            {
                switch (bundle.Status)
                {
                case "true":
                    query = query.Where(c => c.Status == StatusOrderPlan.Accomplished);
                    break;

                case "false":
                    query = query.Where(c => c.Status == StatusOrderPlan.Cancel);
                    break;
                }
            }

            query = query.Where(c => c.Status != StatusOrderPlan.Unfinished);

            if (!string.IsNullOrEmpty(bundle.Keyword))
            {
                query = query.Where(c => c.Name.Contains(bundle.Keyword) || c.Code.Contains(bundle.Keyword));
            }

            //3. Paging
            int totalRow = await query.CountAsync();

            query = query.OrderByDescending(c => c.Id);

            query = query.Include(x => x.Creator).Include(l => l.Responsible);

            var data = await query.Skip((bundle.PageIndex - 1) *bundle.PageSize)
                       .Take(bundle.PageSize)
                       .Select(i => new OrderPlanVm()
            {
                Id     = i.Id,
                Code   = i.Code,
                Name   = i.Name,
                Status = i.Status == StatusOrderPlan.Accomplished ? "Đã hoàn thành" :
                         i.Status == StatusOrderPlan.Cancel ? "Đã hủy" : "Đang đặt hàng",
                CreatedDate     = i.CreatedDate.ToString("dd-MM-yyyy"),
                CodeCreator     = i.Creator.Code,
                CodeResponsible = i.Responsible.Code
            }).ToListAsync();

            //4. Select and projection
            var pagedResult = new PagedResult <OrderPlanVm>()
            {
                TotalRecords = totalRow,
                PageIndex    = bundle.PageIndex,
                PageSize     = bundle.PageSize,
                Items        = data
            };

            return(new ApiSuccessResult <PagedResult <OrderPlanVm> >(pagedResult));
        }
Beispiel #4
0
        public async Task <ApiResult <PagedResult <OrderPlanVm> > > GetOrderPlanPaging(GetOrderPlanPagingRequest bundle)
        {
            var url = $"/api/OrderPlan/paging?pageIndex=" +
                      $"{bundle.PageIndex}&pageSize={bundle.PageSize}&keyword={bundle.Keyword}&status={bundle.Status}";
            var result = await GetListAsync <OrderPlanVm>(url);

            return(result);
        }