/// <summary> /// Initializes a new instance of the <see cref="IIdentifier"/> class. /// </summary> /// <param name="properties">The properties. they must include: /// PricingStructureType, CurveName, BuildDateTime and Algorithm.</param> public PricingStructurePropertiesIdentifier(NamedValueSet properties) { Properties = properties; try { DataType = "Properties.PricingStructures"; SourceSystem = PropertyHelper.ExtractSourceSystem(properties); Domain = SourceSystem + '.' + DataType; Id = PropertyHelper.ExtractPropertyIdentifier(properties); PricingStructureType = PropertyHelper.ExtractPricingStructureType(properties); UniqueIdentifier = BuildUniqueId(); PropertyHelper.Update(Properties, CurveProp.UniqueIdentifier, UniqueIdentifier); PropertyHelper.Update(Properties, "Domain", Domain); } catch (System.Exception) { throw new System.Exception("Invalid pricingstrucutre property name."); } }
private void SetProperties() { SourceSystem = PropertyHelper.ExtractSourceSystem(Properties); PricingStructureType = PropertyHelper.ExtractPricingStructureType(Properties); Domain = SourceSystem + '.' + DataType; BuildDateTime = PropertyHelper.ExtractBuildDateTime(Properties); BaseDate = PropertyHelper.ExtractBaseDate(Properties); Algorithm = PropertyHelper.ExtractAlgorithm(Properties); Market = PropertyHelper.ExtractMarket(Properties); MarketAndDate = PropertyHelper.ExtractMarketAndDate(Properties); Index = PropertyHelper.ExtractIndex(Properties); IndexTenor = PropertyHelper.ExtractIndexTenor(Properties); CurveName = PropertyHelper.ExtractCurveName(Properties); Currency = CurrencyHelper.Parse(PropertyHelper.ExtractCurrency(Properties)); DateTime?marketDate = PropertyHelper.ExtractMarketDate(Properties); MarketDate = marketDate ?? MarketDate; StressName = Properties.GetValue <string>(CurveProp.StressName, false); NameSpace = Properties.GetValue <string>(EnvironmentProp.NameSpace, false); Id = BuildId(); UniqueIdentifier = SetUniqueId(); }