public ApplicationProcessingService(ICardRepository cardRepository, ICardApplicationResultRepository cardApplicationResultRepository, ICardApplicationRepository applicationRepository, IAgeMonthsCalculator ageCalculator)
 {
     _cardRepository = cardRepository;
     _cardApplicationResultRepository = cardApplicationResultRepository;
     _applicationRepository           = applicationRepository;
     _ageCalculator = ageCalculator;
 }
        public bool MeetsCriteria(ICreditApplication creditApplication, IAgeMonthsCalculator ageCalculator)
        {
            decimal ageInMonths = creditApplication.GetApplicantAgeMonths(ageCalculator);

            if (ageInMonths < MinAgeMonths || ageInMonths > MaxAgeMonths)
            {
                return(false);
            }
            decimal incomeGbp = creditApplication.GetApplicantSalary();

            if (incomeGbp < MinIncomeGbp || incomeGbp > MaxIncomeGbp)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
 public decimal GetApplicantAgeMonths(IAgeMonthsCalculator ageCalculator)
 {
     ageCalculator.SetMatchDate(DateTime.Now);
     ageCalculator.SetBirthdate(DateOfBirth);
     return(ageCalculator.GetAge());
 }