Example #1
0
        private List <PassedInternalChecksReadyToTakePayment> CheckPassingValidationRules(ProcessPaymentDomainCommand processPaymentCommand)
        {
            if (processPaymentCommand == null || processPaymentCommand.PaymentRequests == null || !processPaymentCommand.PaymentRequests.ToList().Any())
            {
                return(new List <PassedInternalChecksReadyToTakePayment>());
            }

            //checking validation logic:
            // - Minimum amount is £1.00.
            // - Maximum amount is £20,000,000.00.
            foreach (var paymentRequest in processPaymentCommand.PaymentRequests)
            {
                if (paymentRequest.Amount < 1 || paymentRequest.Amount > 20000000.00)
                {
                    InternalValidationFailedPayments.Add(new InternalValidationFailedPayment()
                    {
                        Code = paymentRequest.Code, Name = paymentRequest.Name, Reference = paymentRequest.Reference, Amount = paymentRequest.Amount
                    });
                    continue;
                }
                PassedInternalChecksReadyToTakePayments.Add(new PassedInternalChecksReadyToTakePayment()
                {
                    Code = paymentRequest.Code, Name = paymentRequest.Name, Reference = paymentRequest.Reference, Amount = paymentRequest.Amount
                });
            }

            return(PassedInternalChecksReadyToTakePayments);
        }