示例#1
0
    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);
        }