/// <summary> /// Initializes a new instance of the <see cref="AnnuityCalculatorDepositAmountRequest" /> class. /// </summary> /// <param name="inflationRate">inflationRate (default to 0.0F).</param> /// <param name="decumulationHorizon">decumulationHorizon (required).</param> /// <param name="accountIds">accountIds.</param> /// <param name="taxRate">taxRate (default to 0.0F).</param> /// <param name="accumulationHorizon">accumulationHorizon (required).</param> /// <param name="annuityAmount">annuityAmount (required).</param> /// <param name="portfolioReturn">portfolioReturn (required).</param> /// <param name="depositSchedule">depositSchedule.</param> /// <param name="annuityFrequencyInterval">annuityFrequencyInterval (default to AnnuityFrequencyIntervalEnum.Year).</param> /// <param name="initialBalance">initialBalance (default to 0.0F).</param> /// <param name="aggregationAccountIds">aggregationAccountIds.</param> /// <param name="createLog">createLog (default to false).</param> public AnnuityCalculatorDepositAmountRequest(float?inflationRate = 0.0F, int?decumulationHorizon = default(int?), List <Guid?> accountIds = default(List <Guid?>), float?taxRate = 0.0F, int?accumulationHorizon = default(int?), float?annuityAmount = default(float?), float?portfolioReturn = default(float?), AnnuityDepositSchedule depositSchedule = default(AnnuityDepositSchedule), AnnuityFrequencyIntervalEnum?annuityFrequencyInterval = AnnuityFrequencyIntervalEnum.Year, float?initialBalance = 0.0F, List <Guid?> aggregationAccountIds = default(List <Guid?>), bool?createLog = false) { // to ensure "decumulationHorizon" is required (not null) if (decumulationHorizon == null) { throw new InvalidDataException("decumulationHorizon is a required property for AnnuityCalculatorDepositAmountRequest and cannot be null"); } else { this.DecumulationHorizon = decumulationHorizon; } // to ensure "accumulationHorizon" is required (not null) if (accumulationHorizon == null) { throw new InvalidDataException("accumulationHorizon is a required property for AnnuityCalculatorDepositAmountRequest and cannot be null"); } else { this.AccumulationHorizon = accumulationHorizon; } // to ensure "annuityAmount" is required (not null) if (annuityAmount == null) { throw new InvalidDataException("annuityAmount is a required property for AnnuityCalculatorDepositAmountRequest and cannot be null"); } else { this.AnnuityAmount = annuityAmount; } // to ensure "portfolioReturn" is required (not null) if (portfolioReturn == null) { throw new InvalidDataException("portfolioReturn is a required property for AnnuityCalculatorDepositAmountRequest and cannot be null"); } else { this.PortfolioReturn = portfolioReturn; } // use default value if no "inflationRate" provided if (inflationRate == null) { this.InflationRate = 0.0F; } else { this.InflationRate = inflationRate; } this.AccountIds = accountIds; // use default value if no "taxRate" provided if (taxRate == null) { this.TaxRate = 0.0F; } else { this.TaxRate = taxRate; } this.DepositSchedule = depositSchedule; // use default value if no "annuityFrequencyInterval" provided if (annuityFrequencyInterval == null) { this.AnnuityFrequencyInterval = AnnuityFrequencyIntervalEnum.Year; } else { this.AnnuityFrequencyInterval = annuityFrequencyInterval; } // use default value if no "initialBalance" provided if (initialBalance == null) { this.InitialBalance = 0.0F; } else { this.InitialBalance = initialBalance; } this.AggregationAccountIds = aggregationAccountIds; // use default value if no "createLog" provided if (createLog == null) { this.CreateLog = false; } else { this.CreateLog = createLog; } }
/// <summary> /// Initializes a new instance of the <see cref="VariableAnnuityRequest" /> class. /// </summary> /// <param name="p">p.</param> /// <param name="allocationId">allocationId.</param> /// <param name="decumulationHorizon">decumulationHorizon (required).</param> /// <param name="accumulationHorizon">accumulationHorizon (required).</param> /// <param name="annuitizationRate">annuitizationRate (default to 0.0F).</param> /// <param name="guaranteedRateBenefit">guaranteedRateBenefit.</param> /// <param name="modelId">modelId.</param> /// <param name="portfolioTickers">portfolioTickers.</param> /// <param name="createLog">createLog (default to false).</param> /// <param name="inflationRate">inflationRate (default to 0.0F).</param> /// <param name="aggregationAccountId">aggregationAccountId.</param> /// <param name="n">n (default to 1000).</param> /// <param name="guaranteedAccumulationBenefit">guaranteedAccumulationBenefit (default to 0.0F).</param> /// <param name="endDate">endDate.</param> /// <param name="taxRate">taxRate (default to 0.0F).</param> /// <param name="startDate">startDate.</param> /// <param name="removeOutliers">removeOutliers (default to false).</param> /// <param name="portfolioWeights">portfolioWeights.</param> /// <param name="portfolioId">portfolioId.</param> /// <param name="resultType">resultType (default to ResultTypeEnum.Median).</param> /// <param name="accountId">accountId.</param> /// <param name="tradingDaysPerYear">tradingDaysPerYear (default to 252).</param> /// <param name="useProxyData">useProxyData (default to false).</param> /// <param name="initialBalance">initialBalance (default to 0.0F).</param> /// <param name="marketDataSource">marketDataSource (default to MarketDataSourceEnum.Nucleus).</param> /// <param name="frequencyInterval">frequencyInterval (default to FrequencyIntervalEnum.Year).</param> /// <param name="depositSchedule">depositSchedule.</param> public VariableAnnuityRequest(decimal?p = default(decimal?), Guid?allocationId = default(Guid?), int?decumulationHorizon = default(int?), int?accumulationHorizon = default(int?), float?annuitizationRate = 0.0F, List <GuaranteedRateBenefit> guaranteedRateBenefit = default(List <GuaranteedRateBenefit>), Guid?modelId = default(Guid?), List <string> portfolioTickers = default(List <string>), bool?createLog = false, float?inflationRate = 0.0F, Guid?aggregationAccountId = default(Guid?), int?n = 1000, float?guaranteedAccumulationBenefit = 0.0F, string endDate = default(string), float?taxRate = 0.0F, string startDate = default(string), bool?removeOutliers = false, List <float?> portfolioWeights = default(List <float?>), Guid?portfolioId = default(Guid?), ResultTypeEnum?resultType = ResultTypeEnum.Median, Guid?accountId = default(Guid?), int?tradingDaysPerYear = 252, bool?useProxyData = false, float?initialBalance = 0.0F, MarketDataSourceEnum?marketDataSource = MarketDataSourceEnum.Nucleus, FrequencyIntervalEnum?frequencyInterval = FrequencyIntervalEnum.Year, AnnuityDepositSchedule depositSchedule = default(AnnuityDepositSchedule)) { // to ensure "decumulationHorizon" is required (not null) if (decumulationHorizon == null) { throw new InvalidDataException("decumulationHorizon is a required property for VariableAnnuityRequest and cannot be null"); } else { this.DecumulationHorizon = decumulationHorizon; } // to ensure "accumulationHorizon" is required (not null) if (accumulationHorizon == null) { throw new InvalidDataException("accumulationHorizon is a required property for VariableAnnuityRequest and cannot be null"); } else { this.AccumulationHorizon = accumulationHorizon; } this.P = p; this.AllocationId = allocationId; // use default value if no "annuitizationRate" provided if (annuitizationRate == null) { this.AnnuitizationRate = 0.0F; } else { this.AnnuitizationRate = annuitizationRate; } this.GuaranteedRateBenefit = guaranteedRateBenefit; this.ModelId = modelId; this.PortfolioTickers = portfolioTickers; // use default value if no "createLog" provided if (createLog == null) { this.CreateLog = false; } else { this.CreateLog = createLog; } // use default value if no "inflationRate" provided if (inflationRate == null) { this.InflationRate = 0.0F; } else { this.InflationRate = inflationRate; } this.AggregationAccountId = aggregationAccountId; // use default value if no "n" provided if (n == null) { this.N = 1000; } else { this.N = n; } // use default value if no "guaranteedAccumulationBenefit" provided if (guaranteedAccumulationBenefit == null) { this.GuaranteedAccumulationBenefit = 0.0F; } else { this.GuaranteedAccumulationBenefit = guaranteedAccumulationBenefit; } this.EndDate = endDate; // use default value if no "taxRate" provided if (taxRate == null) { this.TaxRate = 0.0F; } else { this.TaxRate = taxRate; } this.StartDate = startDate; // use default value if no "removeOutliers" provided if (removeOutliers == null) { this.RemoveOutliers = false; } else { this.RemoveOutliers = removeOutliers; } this.PortfolioWeights = portfolioWeights; this.PortfolioId = portfolioId; // use default value if no "resultType" provided if (resultType == null) { this.ResultType = ResultTypeEnum.Median; } else { this.ResultType = resultType; } this.AccountId = accountId; // use default value if no "tradingDaysPerYear" provided if (tradingDaysPerYear == null) { this.TradingDaysPerYear = 252; } else { this.TradingDaysPerYear = tradingDaysPerYear; } // use default value if no "useProxyData" provided if (useProxyData == null) { this.UseProxyData = false; } else { this.UseProxyData = useProxyData; } // use default value if no "initialBalance" provided if (initialBalance == null) { this.InitialBalance = 0.0F; } else { this.InitialBalance = initialBalance; } // use default value if no "marketDataSource" provided if (marketDataSource == null) { this.MarketDataSource = MarketDataSourceEnum.Nucleus; } else { this.MarketDataSource = marketDataSource; } // use default value if no "frequencyInterval" provided if (frequencyInterval == null) { this.FrequencyInterval = FrequencyIntervalEnum.Year; } else { this.FrequencyInterval = frequencyInterval; } this.DepositSchedule = depositSchedule; }