private void ComboBoxCardTypeSelectionChangd(object sender, EventArgs e) { if (!string.IsNullOrEmpty(m_CreditCard.CardNumber)) { ICreditCardValidator creditCardValidator = m_CreditCard.GetService(typeof(ICreditCardValidator)) as ICreditCardValidator; if (creditCardValidator != null) { string errorMessage; bool isValid = false; isValid = creditCardValidator.ValidateCreditCard(m_CreditCard, out errorMessage); if (!isValid) { labelFeedback.BackColor = Color.LightYellow; labelFeedback.Text = "Feedback:" + Environment.NewLine + errorMessage; formErrorProvider.SetError(labelFeedback, errorMessage); } else { this.labelFeedback.BackColor = System.Drawing.SystemColors.GradientActiveCaption; labelFeedback.Text = "Feedback: Credit Card details were verified successfully."; formErrorProvider.Clear(); } } } else { this.labelFeedback.BackColor = System.Drawing.SystemColors.GradientActiveCaption; labelFeedback.Text = string.Empty; formErrorProvider.Clear(); } }
private static void ValidateCreditCard(Card card) { if (card.CardType != CardType.Unknown) { ICreditCardValidator creditCardValidator = card.GetService(typeof(ICreditCardValidator)) as ICreditCardValidator; if (creditCardValidator != null) { string errorMessage; bool isValid = false; isValid = creditCardValidator.ValidateCreditCard(card, out errorMessage); if (!isValid) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{card.CardType}: {card.CardNumber} (Invalid)"); Console.ForegroundColor = ConsoleColor.Gray; } else { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{card.CardType}: {card.CardNumber} (Valid)"); Console.ForegroundColor = ConsoleColor.Gray; } } } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Unknown: {card.CardNumber} (Invalid)"); Console.ForegroundColor = ConsoleColor.Gray; } }
private void MaskedTextBoxCreditCardNumberValidated(object sender, EventArgs e) { //TODO: Made model properties more robust when setting values. if (!string.IsNullOrEmpty(m_CreditCard.CardNumber.Trim())) { ICreditCardValidator creditCardValidator = m_CreditCard.GetService(typeof(ICreditCardValidator)) as ICreditCardValidator; if (creditCardValidator != null) { string errorMessage; bool isValid = false; isValid = creditCardValidator.ValidateCreditCard(m_CreditCard, out errorMessage); if (!isValid) { labelFeedback.BackColor = Color.LightYellow; labelFeedback.Text = "Feedback:" + Environment.NewLine + errorMessage; formErrorProvider.SetError(labelFeedback, errorMessage); } else { this.labelFeedback.BackColor = System.Drawing.SystemColors.GradientActiveCaption; labelFeedback.Text = "Feedback: Credit Card details were verified successfully."; formErrorProvider.Clear(); } } } else { this.labelFeedback.BackColor = System.Drawing.SystemColors.GradientActiveCaption; labelFeedback.Text = string.Empty; formErrorProvider.Clear(); } }
static void Main(string[] args) { string creditCardNumber = "4539 0685 4366 1747"; ICreditCardValidator validator = CreditCardValidationFactory.Validator(CreditCardIssuerEnum.Nccc); string validationResult = validator.IsValid(creditCardNumber) ? "有效" : "無效"; Console.WriteLine($"信用卡卡號[{creditCardNumber}] 是{validationResult}的"); Console.ReadKey(); }
public OrderAcceptor(IDBContext dbContext, ICreditCardValidator creditCardValidator, IPaymentProcessor paymentProcessor, IEmailSender emailSender, IMessageWriter messageWriter, IInputReader inputReader) { _dbContext = dbContext; _creditCardValidator = creditCardValidator; _paymentProcessor = paymentProcessor; _emailSender = emailSender; _messageWriter = messageWriter; _inputReader = inputReader; }
public void ValidateInValidCreditCardNumbers(string cardNumber, CardType cardType) { Card creditCard = new Card() { CardNumber = cardNumber, CardType = cardType }; ICreditCardValidator creditCardValidator = creditCard.GetService(typeof(ICreditCardValidator)) as ICreditCardValidator; bool isValid = false; string errorMessage = string.Empty; if (creditCardValidator != null) { isValid = creditCardValidator.ValidateCreditCard(creditCard, out errorMessage); } NUnit.Framework.Assert.False(isValid, $"Failed for {creditCard.CardNumber} with type {creditCard.CardType}"); NUnit.Framework.Assert.IsEmpty(errorMessage, $"Failed for {creditCard.CardNumber} with type {creditCard.CardType}"); }
public CreditCardFactory(ICreditCardValidator validator, Tuple <Regex, Type>[] cardDefinitionList) { _validator = validator; _cardDefinitionList = cardDefinitionList; }
public void Initialize() { ICreditCardValidator validator = Substitute.For <ICreditCardValidator>(); _factory = new CreditCardFactory(validator, CARDDEFINITIONS); }
/// <summary>Create an authorizer using a provided credit card validator.</summary> /// <param name="creditCardValidator">The ICreditCardValidator instance to use.</param> public AlwaysAuthorize(ICreditCardValidator creditCardValidator) { this.creditCardValidator = creditCardValidator; }
public void Initialize() { _validator = Substitute.For <ICreditCardValidator>(); }
public void SetUp() { _uut = new CreditCardValidator(); }
/// <summary>Create an authorizer using an instance of CreditCardValidator.</summary> public AlwaysAuthorize() { creditCardValidator = new CreditCardValidator(); }
public CreditCard(string cardNumber, ICreditCardValidator validator) { _cardNumber = cardNumber; _validator = validator; }
public MasterCardCreditCard(string cardNumber, ICreditCardValidator validator) : base(cardNumber, validator) { }
public AmexCreditCard(string cardNumber, ICreditCardValidator validator) : base(cardNumber, validator) { }
public DiscoverCreditCard(string cardNumber, ICreditCardValidator validator) : base(cardNumber, validator) { }
public Card() { //TODO: Instantiate this sevcie using dependency injection to have loose coupling. m_CreditCardValidator = new CreditCardValidator(); }
/// <summary>Create an authorizer using a provided credit card validator.</summary> /// <param name="creditCardValidator">The ICreditCardValidator instance to use.</param> public AuthorizationService(ICreditCardValidator creditCardValidator) { this.creditCardValidator = creditCardValidator; }
/// <summary>Create an authorizer using an instance of CreditCardValidator.</summary> public AuthorizationService() { creditCardValidator = new CreditCardValidator(); }
public void Initialize() { validator = new LuhnValidator(); }
public UnknownCreditCard(string cardNumber, ICreditCardValidator validator) : base(cardNumber, validator) { }