コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        public decimal Tax()
        {
            ITaxCalculationStrategy strategy = null;

            if (Country == "SE")
            {
                strategy = new SwedenTaxCalculation();
            }
            if (Country == "NO")
            {
                strategy = new NorwayTaxCalculation();
            }
            return(strategy.Tax(Salary));
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: aspcodenet/CmsStrategyDemo
        public decimal CalculateTax()
        {
            ITaxCalculationStrategy taxCalculationToUse = GetTaxCalculationToUseForThisPerson();

            return(taxCalculationToUse.CalculateTax(Salary));
        }
コード例 #5
0
 public TaxCalculatorManager(ILogger <TaxCalculatorManager> logger, IMemoryCache memoryCache, ITaxCalculationStrategy taxCalculationStrategy)
 {
     _logger                 = logger;
     _memoryCache            = memoryCache;
     _taxCalculationStrategy = taxCalculationStrategy;
 }
コード例 #6
0
ファイル: LineItem.cs プロジェクト: sasanbabai/SalesTax
 public LineItem(ITaxCalculationStrategy taxCalculationStrategy, IRoundingStrategy roundingStrategy)
 {
     _taxCalculationStrategy = taxCalculationStrategy;
     _roundingStrategy       = roundingStrategy;
 }