Ejemplo n.º 1
0
        private TaxConfiguration GetSteuerkonfiguration(Kanton kanton, Betragsart betragsart)
        {
            //Konfigurationen laden und holen
            IList<TaxConfiguration> configurations = _taxconfigurationRepository.FindByKantonAndBetragsart(kanton, betragsart);

            if (configurations.Count != 1) throw new ApplicationException(string.Format("Es sollte genau eine Steuerkonfiguration geben! Es gibt aber: {0}! Suchkriterien: Steueramt: {1}, Betragsart: {2}", configurations.Count, kanton, betragsart));

            return configurations[0];
        }
Ejemplo n.º 2
0
        public TaxStrategyBase GetStrategy(Kanton kanton, Betragsart art)
        {
            TaxConfiguration configuration = GetSteuerkonfiguration(kanton, art);

            Type strategyType = _strategyRegistry[configuration.Strategieart];
            if (strategyType == null) throw new Exception(string.Format("Steuerberechnungsstrategie ist unbekannt: {0}!", configuration.Strategieart));

            TaxStrategyBase strategy = (TaxStrategyBase) Activator.CreateInstance(strategyType, new object[] { configuration });
            return strategy;
        }
        public decimal Calculate(Kanton kanton, Betragsart art, decimal betrag)
        {
            TaxStrategyBase strategy = TaxStrategyFactory.GetInstance().GetStrategy(kanton, art);

            return strategy.Calculate(betrag);
        }
 public IList<TaxConfiguration> FindByKantonAndBetragsart(Kanton kanton, Betragsart betragsart)
 {
     throw new NotImplementedException();
 }