public CreditCardApplicationDecision Evaluate(CreditCardApplication application) { if (_fraudLookup != null && _fraudLookup.IsFraudRisk(application)) { return(CreditCardApplicationDecision.ReferredToHumanFraudRisk); } if (application.GrossAnnualIncome >= HighIncomeThreshold) { return(CreditCardApplicationDecision.AutoAccepted); } //Testing with simple property //if (_validator.LicenseKey == "EXPIRED") //{ // return CreditCardApplicationDecision.ReferredToHuman; //} //Testing with property under hierarchy if (_validator.ServiceInformation.License.LicenseKey == "EXPIRED") { return(CreditCardApplicationDecision.ReferredToHuman); } _validator.ValidationMode = application.Age >= 30 ? ValidationMode.Detailed : ValidationMode.Quick; //Altered this after the ReferWhenFrequentFlyerValidationError Test //bool isValidFrequentFlyerNumber = // _validator.IsValid(application.FrequentFlyerNumber); bool isValidFrequentFlyerNumber; try { isValidFrequentFlyerNumber = _validator.IsValid(application.FrequentFlyerNumber); } catch (Exception) { return(CreditCardApplicationDecision.ReferredToHuman); } if (!isValidFrequentFlyerNumber) { return(CreditCardApplicationDecision.ReferredToHuman); } if (application.Age <= AutoReferralMaxAge) { return(CreditCardApplicationDecision.ReferredToHuman); } if (application.GrossAnnualIncome < LowIncomeThreshold) { return(CreditCardApplicationDecision.AutoDeclined); } return(CreditCardApplicationDecision.ReferredToHuman); }
public CreditCardApplicationDecision Evaluate(CreditCardApplication application) { if (_fraudLookup != null && _fraudLookup.IsFraudRisk(application)) { return(CreditCardApplicationDecision.ReferredToHumanFraudRisk); } if (application.GrossAnnualIncome >= HighIncomeThreshold) { return(CreditCardApplicationDecision.AutoAccepted); } //------------------------------------- //if (_validator.LicenseKey == "EXPIRED") if (_validator.ServiceInformation.License.LicenseKey == "EXPIRED") { return(CreditCardApplicationDecision.ReferredToHuman); } //---this has dependency from external service---------- _validator.ValidationMode = application.Age >= 30 ? ValidationMode.Detailed : ValidationMode.Quick; //var isValidFrequentFlyerNumber = _validator.IsValid(application.FrequentFlyerNumber);//since the validator object is mocked.the bool value will always be false until we setup the return value uisng mock bool isValidFrequentFlyerNumber; try//for checking concept of THROWING EXCEPTION FROM MOCK OBJECTS { isValidFrequentFlyerNumber = _validator.IsValid(application.FrequentFlyerNumber); } catch { //log return(CreditCardApplicationDecision.ReferredToHuman); } if (!isValidFrequentFlyerNumber) { return(CreditCardApplicationDecision.ReferredToHuman); } //-------------------------------------------------------- if (application.Age <= AutoReferralMaxAge) { return(CreditCardApplicationDecision.ReferredToHuman); } if (application.GrossAnnualIncome < LowIncomeThreshold) { return(CreditCardApplicationDecision.AutoDeclined); } return(CreditCardApplicationDecision.ReferredToHuman); }
public CreditCardApplicationDecision Evaluate(CreditCardApplication application) { if (_fraudLookup != null && _fraudLookup.IsFraudRisk(application)) { return(CreditCardApplicationDecision.ReferredToHumanFraudRisk); } if (application.GrossAnnualIncome >= HighIncomeThreshold) { return(CreditCardApplicationDecision.AutoAccepted); } if (_validator.ServiceInformation.License.LicenseKey == "EXPIRED") { return(CreditCardApplicationDecision.ReferredToHuman); } _validator.ValidationMode = application.Age >= 30 ? ValidationMode.Detailed : ValidationMode.Quick; //var isValidFrequentFlyerNumber = //_validator.IsValid(application.FrequentFlyerNumber); bool isValidFrequentFlyerNumber; try { isValidFrequentFlyerNumber = _validator.IsValid(application.FrequentFlyerNumber); } catch (Exception) { // log return(CreditCardApplicationDecision.ReferredToHuman); } if (!isValidFrequentFlyerNumber) { return(CreditCardApplicationDecision.ReferredToHuman); } if (application.Age <= AutoReferralMaxAge) { return(CreditCardApplicationDecision.ReferredToHuman); } if (application.GrossAnnualIncome < LowIncomeThreshold) { return(CreditCardApplicationDecision.AutoDeclined); } return(CreditCardApplicationDecision.ReferredToHuman); }