private void SetProperties() { switch (PricingStructureType) { case PricingStructureTypeEnum.RateCurve: case PricingStructureTypeEnum.RateBasisCurve: ForecastRateIndex = ForecastRateIndexHelper.Parse(Index, IndexTenor); break; case PricingStructureTypeEnum.RateSpreadCurve: case PricingStructureTypeEnum.ClearedRateCurve: ForecastRateIndex = ForecastRateIndexHelper.Parse(Index, IndexTenor); ReferenceCurveTypeAndName = PropertyHelper.ExtractReferenceCurveName(Properties); ReferenceCurveUniqueId = PropertyHelper.ExtractReferenceCurveUniqueId(Properties); break; case PricingStructureTypeEnum.DiscountCurve: string creditInstrumentId = PropertyHelper.ExtractCreditInstrumentId(Properties); string creditSeniority = PropertyHelper.ExtractCreditSeniority(Properties); CreditInstrumentId = InstrumentIdHelper.Parse(creditInstrumentId); CreditSeniority = CreditSeniorityHelper.Parse(creditSeniority); break; case PricingStructureTypeEnum.RateXccyCurve: //ForecastRateIndex = ForecastRateIndexHelper.Parse(Index, IndexTenor); string discountInstrumentId = PropertyHelper.ExtractCreditInstrumentId(Properties); string discountSeniority = PropertyHelper.ExtractCreditSeniority(Properties); CreditInstrumentId = InstrumentIdHelper.Parse(discountInstrumentId); CreditSeniority = CreditSeniorityHelper.Parse(discountSeniority); ReferenceCurveTypeAndName = PropertyHelper.ExtractReferenceCurveName(Properties); ReferenceCurveUniqueId = PropertyHelper.ExtractReferenceCurveUniqueId(Properties); ReferenceFxCurveTypeAndName = PropertyHelper.ExtractReferenceFxCurveName(Properties); ReferenceFxCurveUniqueId = PropertyHelper.ExtractReferenceFxCurveUniqueId(Properties); ReferenceCurrency2CurveTypeAndName = PropertyHelper.ExtractReferenceCurrency2CurveName(Properties); ReferenceCurrency2CurveId = PropertyHelper.ExtractReferenceCurrency2CurveId(Properties); break; case PricingStructureTypeEnum.InflationCurve: ForecastRateIndex = ForecastRateIndexHelper.Parse(Index, IndexTenor); var inflationLag = PropertyHelper.ExtractInflationLag(Properties); if (inflationLag != "Unknown") { InflationLag = PeriodHelper.Parse(inflationLag); } break; case PricingStructureTypeEnum.XccySpreadCurve: PricingStructureType = PricingStructureTypeEnum.RateSpreadCurve; break; } }
private void SetProperties(PricingStructureTypeEnum pricingStructureType, string curveName) { if (pricingStructureType == PricingStructureTypeEnum.RateCurve || pricingStructureType == PricingStructureTypeEnum.RateBasisCurve || pricingStructureType == PricingStructureTypeEnum.ClearedRateCurve || pricingStructureType == PricingStructureTypeEnum.RateSpreadCurve) { var rateCurveId = curveName.Split('-'); var indexTenor = rateCurveId[rateCurveId.Length - 1]; var indexName = rateCurveId[0]; for (var i = 1; i < rateCurveId.Length - 1; i++) { indexName = indexName + '-' + rateCurveId[i]; } ForecastRateIndex = ForecastRateIndexHelper.Parse(indexName, indexTenor); } if (pricingStructureType == PricingStructureTypeEnum.DiscountCurve || pricingStructureType == PricingStructureTypeEnum.RateXccyCurve) { var rateCurveId = CurveName.Split('-'); var subordination = rateCurveId[rateCurveId.Length - 1]; var indexName = rateCurveId[0]; for (var i = 1; i < rateCurveId.Length - 1; i++) { indexName = indexName + '-' + rateCurveId[i]; } CreditInstrumentId = InstrumentIdHelper.Parse(indexName); CreditSeniority = CreditSeniorityHelper.Parse(subordination); } if (pricingStructureType == PricingStructureTypeEnum.InflationCurve) { var rateCurveId = CurveName.Split('-'); var indexTenor = rateCurveId[rateCurveId.Length - 1]; var indexName = rateCurveId[0]; for (var i = 1; i < rateCurveId.Length - 1; i++) { indexName = indexName + '-' + rateCurveId[i]; } ForecastRateIndex = ForecastRateIndexHelper.Parse(indexName, indexTenor); } }