Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        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));
        }