コード例 #1
0
        public void LoadActiveOrders(Client client, PaymentStateEnum paymentState = default)
        {
            IQueryable <ActiveOrder> orders = context.Entry(client).Collection(p => p.ActiveOrders).Query();

            if (paymentState != 0)
            {
                orders = orders.Where(p => p.PaymentState == paymentState);
            }
            orders.Load();
        }
コード例 #2
0
        public IEnumerable <ActiveOrderDTO> FindClientActiveOrders(string phoneNumber, PaymentStateEnumDTO paymentState = default)
        {
            Client client = UnitOfWork.Clients.FindByPhoneNumber(phoneNumber);

            if (!(client is null))
            {
                PaymentStateEnum state = Mapper.Map <PaymentStateEnum>(paymentState);
                UnitOfWork.Clients.LoadActiveOrders(client);
                return(Mapper.Map <List <ActiveOrder>, IEnumerable <ActiveOrderDTO> >(client.ActiveOrders));
            }
            return(new List <ActiveOrderDTO>());
        }
コード例 #3
0
        public void LoadActiveOrders(Client client, PaymentStateEnum paymentState = default)
        {
            IQueryable <ActiveOrder> orders = context.Entry(client).Collection(p => p.ActiveOrders).Query()
                                              .Include(p => p.HotelRoom).ThenInclude(p => p.TypeComfort)
                                              .Include(p => p.HotelRoom).ThenInclude(p => p.TypeSize);

            if (paymentState != 0)
            {
                orders = orders.Where(p => p.PaymentState == paymentState);
            }
            orders.Load();
            //context.Entry(client).Collection(p => p.ActiveOrders).Query().Where(p => p.PaymentState == paymentState).Load();
        }
コード例 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Payment" /> class.
 /// </summary>
 /// <param name="Id">he unique, permanent, Afterpay-generated Order ID.</param>
 /// <param name="Token">Checkout token that was used to complete payment.</param>
 /// <param name="Status">An order status.</param>
 /// <param name="Created">The UTC timestamp of when the payment was completed, in ISO 8601 format.</param>
 /// <param name="OriginalAmount">Total amount charged to the consumer for the order.</param>
 /// <param name="OpenToCaptureAmount">Remaining amount that can be captured. Will always be zero for Immediate Payment Flow orders.</param>
 /// <param name="PaymentState">Current state for capturing payments.</param>
 /// <param name="MerchantReference">The merchant's order id/reference that this payment corresponds to.</param>
 /// <param name="Order">Order.</param>
 /// <param name="Metadata">Metadata.</param>
 /// <param name="ReceiptNumber">ReceiptNumber (required).</param>
 public Payment(string Id                = default(string), string Token = default(string), StatusEnum Status = default(StatusEnum), string Created = default(string),
                Money OriginalAmount     = default(Money), Money OpenToCaptureAmount = default(Money), PaymentStateEnum PaymentState     = default(PaymentStateEnum),
                string MerchantReference = default(string), List <Refund> Refunds    = default(List <Refund>), OrderDetails OrderDetails = default(OrderDetails), List <PaymentEvent> Events = default(List <PaymentEvent>))
 {
     this.Id                  = Id;
     this.Token               = Token;
     this.Created             = Created;
     this.OriginalAmount      = OriginalAmount;
     this.OpenToCaptureAmount = OpenToCaptureAmount;
     this.MerchantReference   = MerchantReference;
     this.Refunds             = Refunds;
     this.OrderDetails        = OrderDetails;
     this.Events              = Events;
 }
コード例 #5
0
        public async Task Test_PaymentRequestService_Pay(PaymentRequestDto paymentRequestDto, PaymentStateDto cheapGatewayResponseDto, int timesCheapGatewayCalled, PaymentStateDto expensiveGatewayResponseDto, int timesExpensiveGatewayCalled, PaymentStateEnum expectedPaymentStateEnum)
        {
            //arrange

            _cheapPaymentGateway.Setup(s => s.ProcessPayment(paymentRequestDto)).Returns(cheapGatewayResponseDto);
            _expensivePaymentGateway.Setup(s => s.ProcessPayment(paymentRequestDto)).Returns(expensiveGatewayResponseDto);


            //act
            var paymentStateDto = await _paymentRequestService.Pay(paymentRequestDto);

            //assert
            Assert.IsNotNull(paymentStateDto);
            Assert.AreEqual(paymentStateDto.PaymentState, expectedPaymentStateEnum);
            _cheapPaymentGateway.Verify(s => s.ProcessPayment(paymentRequestDto), Times.Exactly(timesCheapGatewayCalled));
            _expensivePaymentGateway.Verify(s => s.ProcessPayment(paymentRequestDto), Times.Exactly(timesExpensiveGatewayCalled));
        }
コード例 #6
0
        public void PaymentProcessPremium(PaymentDto paymentDto, PaymentState paymentState, PaymentStateEnum state)
        {
            //arrange
            _expensivePaymentGateway.Setup(x => x.PaymentProcessExpensive(paymentDto)).Returns(state);

            //act
            var paymentStateResult = _paymentGateWay.PaymentProcess(paymentDto, paymentState);

            //assert
            if (state == PaymentStateEnum.Failed)
            {
                _expensivePaymentGateway.Verify(x => x.PaymentProcessExpensive(paymentDto), Times.Exactly(3));
            }
            else
            {
                _expensivePaymentGateway.Verify(x => x.PaymentProcessExpensive(paymentDto), Times.Once);
            }
            Assert.AreEqual(paymentStateResult.State, state.ToString());
        }
コード例 #7
0
        public void ExpensiveProcessCheapGateWay(PaymentDto paymentDto, PaymentState paymentState, PaymentStateEnum state, int callExpensive, int callCheap, PaymentStateEnum CheapState, PaymentStateEnum Expacted)
        {
            //arrange
            _expensivePaymentGateway.Setup(x => x.PaymentProcessExpensive(paymentDto)).Returns(state);
            _cheapPaymentGateway.Setup(s => s.PaymentProcessCheap(paymentDto)).Returns(CheapState);

            //act
            var paymentStateResult = _paymentGateWay.PaymentProcess(paymentDto, paymentState);

            //assert
            _expensivePaymentGateway.Verify(x => x.PaymentProcessExpensive(paymentDto), Times.Exactly(callExpensive));
            _cheapPaymentGateway.Verify(x => x.PaymentProcessCheap(paymentDto), Times.Exactly(callCheap));
            Assert.AreEqual(paymentStateResult.State, Expacted.ToString());
        }
コード例 #8
0
        public void PaymentProcessCheapGateWay(PaymentDto paymentDto, PaymentState paymentState, PaymentStateEnum state)
        {
            //arrange
            _cheapPaymentGateway.Setup(x => x.PaymentProcessCheap(paymentDto)).Returns(state);

            //act
            var paymentStateResult = _paymentGateWay.PaymentProcess(paymentDto, paymentState);

            //assert
            _cheapPaymentGateway.Verify(x => x.PaymentProcessCheap(paymentDto), Times.Once());
            Assert.AreEqual(paymentStateResult.State, state.ToString());
        }