/// <summary> /// Initializes a new instance of the <see cref="PricingContext" /> class. /// </summary> /// <param name="modelRules">The set of model rules that are available. There may be multiple rules for Vendors, but only one per model-instrument pair. Which of these preference sets is used depends upon the model choice selection if specified, or failing that the global default model specification in the options..</param> /// <param name="modelChoice">The choice of which model selection (vendor library, pricing model) to use in evaluation of a given instrument type..</param> /// <param name="options">options.</param> /// <param name="resultDataRules">Set of rules that control querying of unit results either for direct queries into aggregation or for overriding intermediate calculations. For example, a dirty price is made up from a clean price and the accrued interest. One might consider overriding the accrued interest calculated by a model (perhaps one wants to match an external value or simply disagrees with the calculated result) and use that in calculation of the dirty price..</param> public PricingContext(List <VendorModelRule> modelRules = default(List <VendorModelRule>), Dictionary <string, ModelSelection> modelChoice = default(Dictionary <string, ModelSelection>), PricingOptions options = default(PricingOptions), List <ResultDataKeyRule> resultDataRules = default(List <ResultDataKeyRule>)) { this.ModelRules = modelRules; this.ModelChoice = modelChoice; this.ResultDataRules = resultDataRules; this.ModelRules = modelRules; this.ModelChoice = modelChoice; this.Options = options; this.ResultDataRules = resultDataRules; }
/// <summary> /// Initializes a new instance of the <see cref="ConfigurationRecipeSnippet" /> class. /// </summary> /// <param name="scope">The scope used when updating or inserting the Configuration Recipe snippet (required).</param> /// <param name="code">User given string name (code) to identify the recipe. (required).</param> /// <param name="aggregationOptions">aggregationOptions.</param> /// <param name="modelRules">The set of model rules that are available. There may be multiple rules for Vendors, but only one per model-instrument pair. Which of these preference sets is used depends upon the model choice selection if specified, or failing that the global default model specification in the options..</param> /// <param name="pricingOptions">pricingOptions.</param> /// <param name="marketRules">The set of rules that define how to resolve particular use cases. These can be relatively general or specific in nature. Nominally any number are possible and will be processed in order where applicable. However, there is evidently a potential for increased computational cost where many rules must be applied to resolve data. Ensuring that portfolios are structured in such a way as to reduce the number of rules required is therefore sensible..</param> /// <param name="marketOptions">marketOptions.</param> /// <param name="recipe">recipe.</param> public ConfigurationRecipeSnippet(string scope = default(string), string code = default(string), AggregationOptions aggregationOptions = default(AggregationOptions), List <VendorModelRule> modelRules = default(List <VendorModelRule>), PricingOptions pricingOptions = default(PricingOptions), List <MarketDataKeyRule> marketRules = default(List <MarketDataKeyRule>), MarketOptions marketOptions = default(MarketOptions), ConfigurationRecipe recipe = default(ConfigurationRecipe)) { // to ensure "scope" is required (not null) if (scope == null) { throw new InvalidDataException("scope is a required property for ConfigurationRecipeSnippet and cannot be null"); } else { this.Scope = scope; } // to ensure "code" is required (not null) if (code == null) { throw new InvalidDataException("code is a required property for ConfigurationRecipeSnippet and cannot be null"); } else { this.Code = code; } this.ModelRules = modelRules; this.MarketRules = marketRules; this.AggregationOptions = aggregationOptions; this.ModelRules = modelRules; this.PricingOptions = pricingOptions; this.MarketRules = marketRules; this.MarketOptions = marketOptions; this.Recipe = recipe; }
/// <summary> /// Initializes a new instance of the <see cref="ConfigurationRecipeSnippet" /> class. /// </summary> /// <param name="aggregationOptions">aggregationOptions.</param> /// <param name="modelRules">The set of model rules that are available. There may be multiple rules for Vendors, but only one per model-instrument pair. Which of these preference sets is used depends upon the model choice selection if specified, or failing that the global default model specification in the options..</param> /// <param name="pricingOptions">pricingOptions.</param> /// <param name="marketRules">The set of rules that define how to resolve particular use cases. These can be relatively general or specific in nature. Nominally any number are possible and will be processed in order where applicable. However, there is evidently a potential for increased computational cost where many rules must be applied to resolve data. Ensuring that portfolios are structured in such a way as to reduce the number of rules required is therefore sensible..</param> /// <param name="marketOptions">marketOptions.</param> /// <param name="recipe">recipe.</param> public ConfigurationRecipeSnippet(AggregationOptions aggregationOptions = default(AggregationOptions), List <VendorModelRule> modelRules = default(List <VendorModelRule>), PricingOptions pricingOptions = default(PricingOptions), List <MarketDataKeyRule> marketRules = default(List <MarketDataKeyRule>), MarketOptions marketOptions = default(MarketOptions), ConfigurationRecipe recipe = default(ConfigurationRecipe)) { this.AggregationOptions = aggregationOptions; this.ModelRules = modelRules; this.PricingOptions = pricingOptions; this.MarketRules = marketRules; this.MarketOptions = marketOptions; this.Recipe = recipe; }