public string StorePaymentRequestToMerchant(PaymentRequest paymentRequest)
        {
            var merchant = GetMerchant(paymentRequest.MerchantId);

            if (merchant == null)
            {
                return(null);
            }

            var isWithinRange = paymentRequest.amount >= merchant.MinAmount && paymentRequest.amount <= merchant.MaxAmount;

            if (!isWithinRange)
            {
                return($"Amount is not within range. Min Amount = {merchant.MinAmount} - {merchant.MaxAmount}");
            }


            merchant.PaymentRequests.Add(paymentRequest);
            merchant.Cards.Add(paymentRequest.Card);

            _cPGContext.SaveChanges();

            var _bankPaymentResponse = ProcessBankResponse(paymentRequest);

            var statusToString = _bankPaymentResponse.Status == true ? "Success" : "Unsuccessful";

            return($"Payment has been process and stored. PaymentId : {paymentRequest.PaymentRequestId} Status : {statusToString} ");
        }
Ejemplo n.º 2
0
        public void seedDataToInMemoryDB(CPGContext context)
        {
            List <Merchant> Merchants = new List <Merchant>()
            {
                new Merchant("Merchant 1")
                {
                    MinAmount = 0, MaxAmount = 1000
                },
                new Merchant("Merchant 2")
                {
                    MinAmount = 200, MaxAmount = 2000
                },
                new Merchant("Merchant 3")
                {
                    MinAmount = 3000, MaxAmount = 30000
                }
            };

            context.Merchants.AddRange(Merchants);
            context.SaveChanges();
        }