public override List <object[]> DoExpectedCashflowReport(InstrumentControllerBase pricer) { if (pricer is PropertyTransactionPricer bond) { return((from PriceableCashflow flow in bond.GetChildren() select CashflowReportHelper.DoCashflowReport(pricer.Id, flow)).ToList()); } return(null); }
public override List <object[]> DoExpectedCashflowReport(InstrumentControllerBase pricer) { if (pricer is BulletPaymentPricer payment) { return((from PriceableCashflow flow in payment.GetChildren() select CashflowReportHelper.DoCashflowReport(pricer.Id, flow)).ToList()); } return(null); }
public override List <object[]> DoExpectedCashflowReport(InstrumentControllerBase pricer) { if (pricer is FraPricer payment) { var result = new List <object[]>(); foreach (var cashflow in payment.GetChildren()) { var flow = (PriceableCashflow)cashflow; var reportHelper = CashflowReportHelper.DoCashflowReport(pricer.Id, flow); reportHelper[0] = pricer.Id; result.Add(reportHelper); } return(result); } return(null); }
public override List <object[]> DoExpectedCashflowReport(InstrumentControllerBase pricer) { if (pricer is VanillaEuropeanFxOptionPricer payment) { var result = new List <object[]>(); var index = 0; foreach (var cashflow in payment.GetChildren()) { var flow = (PriceableCashflow)cashflow; var reportHelper = CashflowReportHelper.DoCashflowReport(pricer.Id, flow); reportHelper[0] = pricer.Id; result[index] = reportHelper; index++; } return(result); } return(null); }
public override List <object[]> DoExpectedCashflowReport(InstrumentControllerBase instrument) { var interestRateSwaption = instrument as InterestRateSwaptionPricer; List <object[]> result = new List <object[]>(); if (interestRateSwaption?.Swap != null) { var expectedCashFlows = new InterestRateSwapReporter().DoExpectedCashflowReport(interestRateSwaption.Swap); result.AddRange(expectedCashFlows); if (interestRateSwaption.PremiumPayments != null) { foreach (var pemium in interestRateSwaption.PremiumPayments) { var expectedCashFlow = CashflowReportHelper.DoCashflowReport(instrument.Id, pemium); expectedCashFlow[0] = instrument.Id; result.Add(expectedCashFlow); } } } return(result); }
public override List <object[]> DoExpectedCashflowReport(InstrumentControllerBase instrument) { var interestRateSwap = instrument as InterestRateSwapPricer; var result = new List <object[]>(); if (interestRateSwap != null) { foreach (var leg in interestRateSwap.Legs) { var expectedCashFlows = CashflowReportHelper.DoCashflowReport(instrument.Id, leg); result.AddRange(expectedCashFlows); } if (interestRateSwap.AdditionalPayments != null) { foreach (var payment in interestRateSwap.AdditionalPayments) { var pay = CashflowReportHelper.DoCashflowReport(instrument.Id, payment); pay[0] = instrument.Id; result.Add(pay); } } } return(result); }