private List <string> ValidateCardDetails(CreateBankPaymentRequest paymentRequest) { List <string> errors = new List <string>(); if (string.IsNullOrEmpty(paymentRequest.CardNumber)) { errors.Add("Card number not provided"); } if (paymentRequest.Amount <= 0) { errors.Add("Amount not a postive number"); } if (string.IsNullOrEmpty(paymentRequest.Cvv)) { errors.Add("CVV not provided"); } if (string.IsNullOrEmpty(paymentRequest.NameOnCard)) { errors.Add("Name on card not provided"); } if (paymentRequest.ExpiryDate <= DateTime.Now) { errors.Add("Card has expired"); } return(errors); }
public async Task <CreateBankPaymentResponse> CreatePaymentAsync(CreateBankPaymentRequest paymentRequest) { List <string> errors = ValidateCardDetails(paymentRequest); if (errors.Any()) { return(new CreateBankPaymentResponse() { Success = false, Errors = errors }); } double result = new Random().NextDouble(); bool paymentSuccess = false; if (result < _paymentSuccessRate) { paymentSuccess = true; } if (paymentSuccess) { return(new CreateBankPaymentResponse() { Success = false, Errors = new List <string>() { "Payment failed" } }); } else { return(new CreateBankPaymentResponse() { Success = true, Id = Guid.NewGuid() }); } }
public Task <CreateBankPaymentResponse> CreatePaymentAsync(CreateBankPaymentRequest paymentRequest) { throw new NotImplementedException(); }