示例#1
0
        public object ReturntheCalculatorMatchingEventType(string eventType)
        {
            _giftAidCalculatorFinder = new GiftAidCalculatorFinder(new List <IGiftAidCalculator>()
            {
                new GeneralGiftAidCalculator(), new SwimmingGiftAidCalculator()
            });

            var calculator = _giftAidCalculatorFinder.Find(eventType);

            return(calculator.GetType());
        }
        public async Task <decimal> CalculateGiftAid(decimal donationAmount, string country, string eventType)
        {
            var taxList = await _taxRepository.GetTaxRate(country);

            if (!taxList.Any())
            {
                return(0);
            }

            var giftAidCalculator = _giftAidCalculatorFinder.Find(eventType);

            return(giftAidCalculator.Calculate(donationAmount, country, taxList.Single()));
        }