public PremiumCalculation CalculateYearlyPremium(decimal yearlyRevenue, AmountOfInsurance amountOfInsurance) { var yearlyRevenueInThosands = yearlyRevenue / 1000m; var basePremium = CalculateBasePremium(yearlyRevenueInThosands); return(new PremiumCalculation(ApplyAdjustment(basePremium, amountOfInsurance))); }
private static decimal CalculateAdjustmentForAmountOfInsurance(AmountOfInsurance amountOfInsurance) { switch (amountOfInsurance) { case AmountOfInsurance.One: return(1.1m); case AmountOfInsurance.Two: return(1.2m); case AmountOfInsurance.Three: return(1.3m); case AmountOfInsurance.Four: return(1.4m); case AmountOfInsurance.Five: return(1.5m); default: throw new ArgumentException(nameof(amountOfInsurance), $"Unexpected enum value for AmountOfInsurance {amountOfInsurance.GetType()}"); } }
private static decimal ApplyAdjustment(decimal basePremium, AmountOfInsurance amountOfInsurance) { return(basePremium * CalculateAdjustmentForAmountOfInsurance(amountOfInsurance)); }