ModulusChecking.Steps.FirstModulusCalculatorStep.Process C# (CSharp) Method

Process() public method

public Process ( BankAccountDetails bankAccountDetails ) : bool
bankAccountDetails ModulusChecking.Models.BankAccountDetails
return 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);
        }

Usage Example

        /// <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);
        }
All Usage Examples Of ModulusChecking.Steps.FirstModulusCalculatorStep::Process