public static void SetSpread(PaymentCalculationPeriod paymentCalculationPeriod, decimal value) { foreach (CalculationPeriod calculationPeriod in XsdClassesFieldResolver.GetPaymentCalculationPeriodCalculationPeriodArray(paymentCalculationPeriod)) { if (XsdClassesFieldResolver.CalculationPeriodHasFloatingRateDefinition(calculationPeriod)) { FloatingRateDefinition floatingRateDefinition = XsdClassesFieldResolver.CalculationPeriodGetFloatingRateDefinition(calculationPeriod); floatingRateDefinition.spread = value; floatingRateDefinition.spreadSpecified = true; } else { throw new NotImplementedException("PaymentCalculationPeriodHelper.SetSpread cannot be called on a fixed rate cashflow."); } } }
public static decimal GetSpread(PaymentCalculationPeriod paymentCalculationPeriod) { decimal result = 0.0m; decimal numberOfPeriods = 0.0m; foreach (CalculationPeriod calculationPeriod in XsdClassesFieldResolver.GetPaymentCalculationPeriodCalculationPeriodArray(paymentCalculationPeriod)) { if (XsdClassesFieldResolver.CalculationPeriodHasFloatingRateDefinition(calculationPeriod)) { FloatingRateDefinition floatingRateDefinition = XsdClassesFieldResolver.CalculationPeriodGetFloatingRateDefinition(calculationPeriod); result += floatingRateDefinition.spread; } else { throw new NotImplementedException("PaymentCalculationPeriodHelper.GetSpread cannot be called on fixed rate cashflow."); } numberOfPeriods += 1; } return(result / numberOfPeriods); }
public static decimal GetRate(PaymentCalculationPeriod paymentCalculationPeriod) { decimal result = 0.0m; decimal numberOfPeriods = 0.0m; foreach (CalculationPeriod calculationPeriod in XsdClassesFieldResolver.GetPaymentCalculationPeriodCalculationPeriodArray(paymentCalculationPeriod)) { if (XsdClassesFieldResolver.CalculationPeriodHasFixedRate(calculationPeriod)) { result += XsdClassesFieldResolver.CalculationPeriodGetFixedRate(calculationPeriod); } else if (XsdClassesFieldResolver.CalculationPeriodHasFloatingRateDefinition(calculationPeriod)) { result += XsdClassesFieldResolver.CalculationPeriodGetFloatingRateDefinition(calculationPeriod).calculatedRate; } else { throw new NotImplementedException("PaymentCalculationPeriodHelper.GetRate"); } numberOfPeriods += 1; } return(result / numberOfPeriods); }