public IIncentive CreateIncentiveTieredInstance( int id, string name, string description, IIncentiveTierValue <int, decimal> values) { IIncentive incentive; switch (name) { case "Fast Start Bonus": { incentive = new FastStartBonusQualifiedIncentive( new FastStartBonusQualifiedIncentive.FastStartBonusValueCalculator(values), new List <IIncentiveQualification> { new FastStartBonusQualifiedIncentive.FastStartBonusQualification() }); } break; case "Fast Start Training Bonus": { incentive = new FastStartBonusQualifiedIncentive( new FastStartBonusQualifiedIncentive.FastStartBonusValueCalculator(values), new List <IIncentiveQualification> { new FastStartBonusQualifiedIncentive.FastStartTrainingBonusQualification() }); } break; default: throw new ArgumentException("Unknown incentive type", name); } incentive.Id = id; incentive.Name = name; incentive.Description = description; return(incentive); }
public FastStartBonusValueCalculator(IIncentiveTierValue <int, decimal> tierValues) { _tierValues = tierValues; }