Esempio n. 1
0
        public List <PaymentMethodDTO> GetAllCanUsePaymentMethods()
        {
            var paymentMethods = DomainRegistry.PaymentService().GetAllPaymentMethods();

            return(paymentMethods.Select(ent => new PaymentMethodDTO
            {
                ID = ent.ID,
                Name = ent.Name
            }).ToList());
        }
Esempio n. 2
0
        public WalletDTO GetUserWallet(string userId)
        {
            var wallet = DomainRegistry.PaymentService().GetWalletByUserId(userId);

            return(new WalletDTO
            {
                AvailableBalance = wallet.AvailableBalance,
                AvailableScore = wallet.AvailableScore
            });
        }
Esempio n. 3
0
        public Result SubmitOrder(SumbitOrderRequest request)
        {
            var cart = _confirmUserCartExistedDomainService.GetUserCart(request.UserId);

            if (cart.IsEmpty())
            {
                return(Result.Fail("当前购物车中并没有商品"));
            }

            var sellingPriceCart = DomainRegistry.SellingPriceService().Calculate(cart);

            var shippingAddress = DomainRegistry.UserService().GetShippingAddress(request.ShippingAddressId);

            if (shippingAddress == null)
            {
                return(Result.Fail("对不起,你选择的收货地址已不存在!"));
            }

            var paymentMethod = DomainRegistry.PaymentService().GetPaymentMethod(request.PaymentMethodId);

            if (paymentMethod == null)
            {
                return(Result.Fail("对不起,你选择的支付方式已不存在!"));
            }

            var express = DomainRegistry.ExpressRepository().GetByIdentity(request.ExpressId);

            if (express == null)
            {
                return(Result.Fail("对不起,你选择的配送方式已不存在!"));
            }

            var coupon = DomainRegistry.SellingPriceService().GetCoupon(request.CouponId);

            if (coupon == null)
            {
                return(Result.Fail("对不起,你选择的礼券不存在!"));
            }
            if (coupon.CanUse)
            {
                return(Result.Fail("对不起,你选择的礼券已使用!"));
            }
            if (coupon.ExpiryDate < DateTime.Now)
            {
                return(Result.Fail("对不起,你选择的礼券已过期!"));
            }

            var waitCreateOrder = ConvertToWaitCreateOrder(cart, sellingPriceCart, shippingAddress, paymentMethod,
                                                           express, coupon);

            return(DomainRegistry.OrderService().Create(waitCreateOrder));
        }