Пример #1
0
        /// <summary>
        ///     Builder order info and calculator price
        /// </summary>
        /// <param name="buyInfoInput"></param>
        public Tuple <ServiceResult, MerchantCartOutput> BuyInfo(MerchantBuyInfoInput buyInfo)
        {
            //user
            var result = new MerchantCartOutput();
            var user   = Resolve <IUserService>().GetSingle(buyInfo.UserId);

            if (user == null || user.Status != Status.Normal)
            {
                return(Tuple.Create(ServiceResult.Failure("您的输入的账户不存在,或者状态不正常"), result));
            }
            //get merchant store
            //var merchantStore = Resolve<IMerchantStoreService>().GetSingle(s => s.Id == buyInfo.MerchantStoreId.ToObjectId());
            //if (merchantStore == null)
            //{
            //    return Tuple.Create(ServiceResult.Failure("当前店铺不存在"), result);
            //}
            //get cart from database
            var cartIds = buyInfo.ProductItems.Select(c => c.Id.ToObjectId()).ToList();
            var carts   = Resolve <IMerchantCartService>().GetCart(cartIds);

            if (carts.Count <= 0)
            {
                return(Tuple.Create(ServiceResult.Failure("购物车为空"), result));
            }

            return(CountPrice(carts));
        }
Пример #2
0
        public ApiResult <MerchantCartOutput> BuyInfo([FromBody] MerchantBuyInfoInput parameter)
        {
            if (!this.IsFormValid())
            {
                return(ApiResult.Failure <MerchantCartOutput>(this.FormInvalidReason(),
                                                              MessageCodes.ParameterValidationFailure));
            }

            var serviceResult = Resolve <IMerchantOrderService>().BuyInfo(parameter);

            if (!serviceResult.Item1.Succeeded)
            {
                return(ApiResult.Failure <MerchantCartOutput>(serviceResult.Item1.ToString(),
                                                              MessageCodes.ServiceFailure));
            }

            return(ApiResult.Success(serviceResult.Item2));
        }