예제 #1
0
        public CreditCardApplicationDecision Evaluate(CreditCardApplication application)
        {
            if (_fraudLookup != null && _fraudLookup.IsFraudRisk(application))
            {
                return(CreditCardApplicationDecision.ReferredToHumanFraudRisk);
            }

            if (application.GrossAnnualIncome >= HighIncomeThreshhold)
            {
                return(CreditCardApplicationDecision.AutoAccepted);
            }

            if (_validator.ServiceInformation.License.LicenseKey == "EXPIRED")
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            _validator.ValidationMode = application.Age >= 30 ? ValidationMode.Detailed : ValidationMode.Quick;

            bool isValidFrequentFlyerNumber;

            try
            {
                isValidFrequentFlyerNumber =
                    _validator.IsValid(application.FrequentFlyNumber);
            }
            catch (Exception)
            {
                // log
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (!isValidFrequentFlyerNumber)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.Age <= AutoReferralMaxAge)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.GrossAnnualIncome < LowIncomethresshold)
            {
                return(CreditCardApplicationDecision.AutoDeclined);
            }

            return(CreditCardApplicationDecision.ReferredToHuman);
        }
 public CreditCardApplicationDecision Evaluate(CreditCardApplication application)
 {
     if (application.GrossAnnualIncome >= HighIncomeThreshold)
     {
         return(CreditCardApplicationDecision.AutoAccepted);
     }
     if (application.Age <= AutoReferralMaxAge)
     {
         return(CreditCardApplicationDecision.ReferredToHuman);
     }
     if (application.GrossAnnualIncome < LowIncomeThreshold)
     {
         return(CreditCardApplicationDecision.AutoDeclined);
     }
     // if anything else then return this
     return(CreditCardApplicationDecision.ReferredToHuman);
 }
        public CreditCardApplicationDecision EvaluateUsingOut(CreditCardApplication application)
        {
            if (application.GrossAnnualIncome >= HighIncomeThrehhold)
            {
                return(CreditCardApplicationDecision.AutoAccepted);
            }

            _validator.IsValid(application.FrequentFlyerNumber, out var isValidFrequentFlyerNumber);

            if (!isValidFrequentFlyerNumber)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.Age <= AutoReferralMaxAge)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            return(CreditCardApplicationDecision.AutoDeclined);
        }
예제 #4
0
        //public virtual bool IsFraudRisk(CreditCardApplication application)
        //{
        //    if (application.LastName == "Smith")
        //    {
        //        return true;
        //    }

        //    return false;
        //}

        public bool IsFraudRisk(CreditCardApplication application)
        {
            return(CheckApplication(application));
        }