public Process ( |
||
bankAccountDetails | ||
Résultat | bool |
public virtual bool Process(BankAccountDetails bankAccountDetails)
{
bankAccountDetails.FirstResult = _firstStepRouter.GetModulusCalculation(bankAccountDetails);
if (bankAccountDetails.RequiresCouttsAccountCheck())
{
return ExceptionFourteenForCouttsAccounts(bankAccountDetails);
}
if (bankAccountDetails.WeightMappings.Count() == 1 || !bankAccountDetails.IsSecondCheckRequired())
{ return bankAccountDetails.FirstResult; }
if (bankAccountDetails.IsExceptionTwoAndFirstCheckPassed()) return true;
return bankAccountDetails.IsExceptionThreeAndCanSkipSecondCheck()
? bankAccountDetails.FirstResult
: _secondModulusCalculatorStep.Process(bankAccountDetails);
}
/// <summary> /// If there are no SortCode Modulus Weight Mappings available then the BankAccountDetails validate as true. /// Otherwise move onto the first modulus calculation step /// </summary> public bool Process(BankAccountDetails bankAccountDetails) { var isValidForModulusCheck = bankAccountDetails.IsValidForModulusCheck(); var isUncheckableForeignAccount = bankAccountDetails.IsUncheckableForeignAccount(); if (!isValidForModulusCheck || isUncheckableForeignAccount) { return(true); } var result = _firstModulusCalculatorStep.Process(bankAccountDetails); return(result); }