public TaxService( ITaxStrategyFactory taxStrategyFactory, ITaxCalculationRepository taxCalculationRepository) { _taxStrategyFactory = taxStrategyFactory ?? throw new System.ArgumentNullException(nameof(taxStrategyFactory)); _taxCalculationRepository = taxCalculationRepository ?? throw new System.ArgumentNullException(nameof(taxCalculationRepository)); }
public TaxCalculationService( Func <TaxType, ITaxCalculation> taxCalculationResolver, ITaxCalculationRepository taxCalculationRepository, IPostalCodeTaxRepository postalCodeTaxRepository, ILogger <TaxCalculationService> logger) { _taxCalculationRepository = taxCalculationRepository; _postalCodeTaxRepository = postalCodeTaxRepository; _taxCalculationResolver = taxCalculationResolver; _logger = logger; }
public TaxCalculationService(ITaxCalculationTypeRepository taxCalculationTypeRepository, ITaxCalculationRepository taxCalculationRepository) { _taxCalculationTypeRepository = taxCalculationTypeRepository; _taxCalculationRepository = taxCalculationRepository; if (_taxCalculators.Count == 0) { _taxCalculators.Add(TaxCalcType.FlatRate, new FlatRateTaxCalclator()); _taxCalculators.Add(TaxCalcType.FlatValue, new FlatValueTaxCalclator()); _taxCalculators.Add(TaxCalcType.Progressive, new ProgressiveTaxCalclator()); } }
public TaxCalculatorManager( ITaxCalculationRepository calculationRepository, ITaxYearRepository taxYearRepository, IPostalCodeTaxCalculationMappingRepository calculationMappingRepository, IValidationRuleEngine <TaxCalculationRequest, TaxCalculationResponse> validationRuleEngine, ITaxCalculatorFactory taxCalculatorFactory, IClock clock) { _calculationRepository = calculationRepository; _taxYearRepository = taxYearRepository; _calculationMappingRepository = calculationMappingRepository; _validationRuleEngine = validationRuleEngine; _taxCalculatorFactory = taxCalculatorFactory; _clock = clock; }
public TaxCalculatorFactory(ITaxCalculationRepository taxCalculationRepository) { _taxCalculationRepository = taxCalculationRepository; }
public FlatValueTaxCalculator(ITaxCalculationRepository taxCalculationRepository) { _taxCalculationRepository = taxCalculationRepository; }
public ProgressiveTaxCalculator(ITaxCalculationRepository taxCalculationRepository) { _taxCalculationRepository = taxCalculationRepository; }
public TaxCalculationWorkflow(ITaxCalculationRepository taxCalculationRepository, ITaxCalculatorFactory taxCalculatorFactory) { _taxCalculationRepository = taxCalculationRepository; _taxCalculatorFactory = taxCalculatorFactory; }