/// <summary> /// Get order list for mobile /// </summary> /// <param name="orderInput"></param> public PagedList <MerchantOrderList> GetOrderList(MerchantOrderListInput orderInput) { //query express var query = new ExpressionQuery <MerchantOrder>(); if (orderInput.OrderStatus > 0) { query.And(e => e.OrderStatus == orderInput.OrderStatus); } if (!string.IsNullOrWhiteSpace(orderInput.MerchantStoreId)) { query.And(e => e.MerchantStoreId == orderInput.MerchantStoreId); } if (orderInput.UserId > 0) { query.And(e => e.UserId == orderInput.UserId); } query.PageIndex = (int)orderInput.PageIndex; query.PageSize = (int)orderInput.PageSize; query.EnablePaging = true; query.OrderByDescending(e => e.Id); var orders = Resolve <IMerchantOrderService>().GetPagedList(query); if (orders.Count < 0) { return(new PagedList <MerchantOrderList>()); } //all stores var merchantStores = Resolve <IMerchantStoreService>().GetList().ToList(); //query var result = new List <MerchantOrderList>(); var apiService = Resolve <IApiService>(); orders.ForEach(item => { var store = merchantStores.Find(s => s.Id == item.MerchantStoreId.ToObjectId()); if (store == null) { return; } var extension = item.Extension.DeserializeJson <MerchantOrderExtension>(); var temp = new MerchantOrderList(); temp = AutoMapping.SetValue(item, temp); temp.MerchantOrderStatus = item.OrderStatus; temp.MerchantStoreName = store.Name; temp.ThumbnailUrl = apiService.ApiImageUrl(store.Logo); temp.Products = extension?.MerchantProducts; temp.Products?.ForEach(product => { product.ThumbnailUrl = apiService.ApiImageUrl(product.ThumbnailUrl); }); result.Add(temp); }); return(PagedList <MerchantOrderList> .Create(result, orders.RecordCount, orders.PageSize, orders.PageIndex)); }
public ApiResult <PagedList <MerchantOrderList> > BuyOrderList([FromQuery] MerchantOrderListInput parameter) { if (!this.IsFormValid()) { return(ApiResult.Failure <PagedList <MerchantOrderList> >(this.FormInvalidReason(), MessageCodes.ParameterValidationFailure)); } var result = Resolve <IMerchantOrderService>().GetOrderList(parameter); return(ApiResult.Success(result)); }