/// <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)); }
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); }
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); }
public IActionResult GetCustomerOrders([FromQuery] GetCustomerOrderRequest request) { var customer = _orderService.GetCustomerOrders(request); return(Ok(customer)); }