public static bool Validate(CardType cardType, string cardNumber) { string strippedCardNumber = Regex.Replace(cardNumber, @"\D", String.Empty); ICardValidator validator = SelectCardValidator(cardType); return(validator.Validate(strippedCardNumber)); }
public string CompletePurchase(SalesOrder salesOrder, CardInfo cardInfo) { // This is a controller that follows four steps to complete the sale. string authorizationCode = null; if (Validate(salesOrder) && cardValidator.Validate(cardInfo)) { authorizationCode = authorizer.Authorize((decimal)salesOrder.Total, cardInfo); if (authorizationCode != null) { UpdateSalesOrder(salesOrder, cardInfo, authorizationCode); } } return(authorizationCode); }