Ejemplo n.º 1
0
        public async Task <StatusCodeResult> ProcessPaymentAsync(PaymentDTM paymentDTM)
        {
            var result = new OperationResult <Payment>();

            switch (paymentDTM.Amount)
            {
            case > 500:
                result = await _premiumPaymentService.PremiumPaymentAsync(paymentDTM);

                break;

            case > 21:
                result = await _expensivePaymentGateway.ExpensivePaymentAsync(paymentDTM);

                break;

            default:
                result = await _cheapPaymentGateway.CheapPaymentAsync(paymentDTM);

                break;
            }

            return(new StatusCodeResult((int)result.StatusCode));
        }
Ejemplo n.º 2
0
        public async System.Threading.Tasks.Task <OperationResult <Payment> > PremiumPaymentAsync(PaymentDTM paymentDTM)
        {
            if (paymentDTM.Amount > 500)
            {
                var mapper  = new Mapper(cpmfig);
                var payment = mapper.Map <Payment>(paymentDTM);
                return(await _paymentRepository.PaymentAsync(payment));
            }

            return(new OperationResult <Payment>
            {
                Succeeded = false,
                StatusCode = System.Net.HttpStatusCode.BadRequest
            });
        }