/// <summary> /// Calculates the tax amount for an invoice /// </summary> /// <param name="strategy">The strategy to use when calculating the tax amount</param> /// <returns><see cref="ITaxCalculationResult"/></returns> public virtual ITaxCalculationResult CalculateTaxForInvoice(ITaxCalculationStrategy strategy) { var attempt = strategy.CalculateTaxesForInvoice(); if (!attempt.Success) throw attempt.Exception; return attempt.Result; }
/// <summary> /// Calculates the tax amount for an invoice /// </summary> /// <param name="strategy">The strategy to use when calculating the tax amount</param> /// <returns><see cref="ITaxCalculationResult"/></returns> public virtual ITaxCalculationResult CalculateTaxForInvoice(ITaxCalculationStrategy strategy) { var attempt = strategy.CalculateTaxesForInvoice(); if (!attempt.Success) { throw attempt.Exception; } return(attempt.Result); }
public decimal Tax() { ITaxCalculationStrategy strategy = null; if (Country == "SE") { strategy = new SwedenTaxCalculation(); } if (Country == "NO") { strategy = new NorwayTaxCalculation(); } return(strategy.Tax(Salary)); }
public decimal CalculateTax() { ITaxCalculationStrategy taxCalculationToUse = GetTaxCalculationToUseForThisPerson(); return(taxCalculationToUse.CalculateTax(Salary)); }
public TaxCalculatorManager(ILogger <TaxCalculatorManager> logger, IMemoryCache memoryCache, ITaxCalculationStrategy taxCalculationStrategy) { _logger = logger; _memoryCache = memoryCache; _taxCalculationStrategy = taxCalculationStrategy; }
public LineItem(ITaxCalculationStrategy taxCalculationStrategy, IRoundingStrategy roundingStrategy) { _taxCalculationStrategy = taxCalculationStrategy; _roundingStrategy = roundingStrategy; }