Exemplo n.º 1
0
        /// <summary>
        /// Gets the customer order.
        /// </summary>
        /// <param name="request">The customer order request.</param>
        /// <returns>The <see cref="Task"/> containing the API response with <see cref="CustomerOrder"/>.</returns>
        public virtual Task <ApiResponse <CustomerOrder> > GetAsync(GetCustomerOrderRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var requestContext = PrepareRequestContext(path: $"{Path}/{request.Id}")
                                 .WithQuery(request.Query.Build());

            return(CallAsync <CustomerOrder>(requestContext));
        }
Exemplo n.º 2
0
        public async Task <PagedResult <OrderPublicViewModel> > GetCustomerOrders(GetCustomerOrderRequest request)
        {
            var client = _httpClientFactory.CreateClient();

            client.BaseAddress = new Uri(_configuration["BaseAddress"]);
            var respone = await client.GetAsync($"/api/order/CustomerOrders?cus_id={request.cus_id}&filter={request.filter}&pageIndex=" +
                                                $"{request.PageIndex}&pageSize={request.PageSize}");

            var body = await respone.Content.ReadAsStringAsync();

            var order = JsonConvert.DeserializeObject <PagedResult <OrderPublicViewModel> >(body);

            return(order);
        }
Exemplo n.º 3
0
        public PagedResult <OrderPublicViewModel> GetCustomerOrders(GetCustomerOrderRequest request)
        {
            var query = from od in _context.OrDetails
                        join p in _context.Products on od.product_id equals p.id
                        join o in _context.Orders on od.order_id equals o.id
                        where o.cus_id == request.cus_id
                        select new { p, o, od };

            var data = query.AsEnumerable()
                       .GroupBy(g => g.o);

            var Orders = data.OrderByDescending(x => x.Key.create_at)
                         .Select(a => new OrderPublicViewModel()
            {
                id           = a.Key.id,
                order_status = a.Key.status,
                total        = a.Key.total - a.Key.discount + a.Key.transport_fee,
                pay_status   = a.Key.isPay,
                Products     = a.Key.OrderDetails.Select(b => new OrderDetailModel()
                {
                    order_id        = b.order_id,
                    product_id      = b.product_id,
                    product_image   = b.Product.image,
                    product_name    = b.Product.name,
                    promotion_price = b.promotion_price,
                    quantity        = b.quantity,
                    unit_price      = b.unit_price,
                }).ToList()
            }).ToList();

            foreach (var item in Orders)
            {
                var tranport = _context.Transports.Where(x => x.order_id == item.id).FirstOrDefault();
                if (tranport != null)
                {
                    item.ship_status = tranport.ship_status;
                }
                else
                {
                    item.ship_status = 0;
                }
            }


            if (!String.IsNullOrEmpty(request.filter))
            {
                if (request.filter == "cho-duyet")
                {
                    Orders = Orders.Where(x => x.order_status == 0).ToList();
                }
                else if (request.filter == "cho-thanh-toan")
                {
                    Orders = Orders.Where(x => !x.pay_status && x.order_status == 1).ToList();
                }
                else if (request.filter == "cho-giao-hang")
                {
                    Orders = Orders.Where(x => x.ship_status == 0 && x.pay_status && x.order_status != -1).ToList();
                }
                else if (request.filter == "dang-giao-hang")
                {
                    Orders = Orders.Where(x => x.ship_status == 1).ToList();
                }
                else if (request.filter == "thanh-cong")
                {
                    Orders = Orders.Where(x => x.ship_status == 2).ToList();
                }
                else if (request.filter == "da-huy")
                {
                    Orders = Orders.Where(x => x.order_status == -1).ToList();
                }
            }

            int totalRow = Orders.Count();

            Orders = Orders.Skip((request.PageIndex - 1) * request.PageSize)
                     .Take(request.PageSize).ToList();


            var pageResult = new PagedResult <OrderPublicViewModel>()
            {
                TotalRecords = totalRow,
                PageIndex    = request.PageIndex,
                PageSize     = request.PageSize,
                Items        = Orders,
            };

            return(pageResult);
        }
Exemplo n.º 4
0
        public IActionResult GetCustomerOrders([FromQuery] GetCustomerOrderRequest request)
        {
            var customer = _orderService.GetCustomerOrders(request);

            return(Ok(customer));
        }