using System;
using AIR.Services.Common.Data;
using AIR.Services.LossAnalysis.Data;
using AIR.Services.MarginalImpact.Api;
using System.Collections.Generic;
class SnippetSubmitMarginalImpactAnalysisRequest
{
private static void SubmitMarginalImpactAnalysis(int businessUnitSid, int sqlInstanceSid, int projectSid, int resultDataSourceSid,
int newPortfolioTargetSid, int referencePortfolioTargetSid, string currency, int currencyExchangeRateSid)
{
MarginalImpactServiceClient client = new MarginalImpactServiceClient();
SubmitMarginalImpactAnalysisRequest request = new SubmitMarginalImpactAnalysisRequest();
request.BusinessUnitSid = businessUnitSid;
request.SqlInstanceSid = sqlInstanceSid;
request.AnalysisOptions = new MarginalImpactLossAnalysisOptions();
request.AnalysisOptions.Name = "Marginal Impact Analysis: " + DateTime.Now.Ticks;
request.AnalysisOptions.Description = "Created by API at " + DateTime.Now.ToString("MMMM dd yyyy H mm ss"); ;
request.AnalysisOptions.Currency = currency;
request.AnalysisOptions.CurrencyExchangeRateSid = currencyExchangeRateSid;
request.AnalysisOptions.ProjectSid = projectSid;
request.AnalysisOptions.ResultDataSourceSid = resultDataSourceSid;
request.AnalysisOptions.Perils = RegionalPerilSet.WorldAllPerils;
request.AnalysisOptions.NewPortfolioTargetSid = newPortfolioTargetSid;
request.AnalysisOptions.ReferencePortfolioTargetSid = referencePortfolioTargetSid;
request.AnalysisOptions.WindowOfEvents = 3;
request.AnalysisOptions.ExcludedContracts = new List<string>() { "test1", "test2" };
request.AnalysisOptions.AdminBoundaryGroups = new List<AdminBoundaryGroup>(){
new AdminBoundaryGroup(){
TargetName = "Test",
AdminBoundarySid = 1,
PerilSetCodes = AIR.Services.Common.Data.MarginalImpactPerilSetCode.AllLicensedPerils
}
};
SubmitMarginalImpactAnalysisResponse response = client.SubmitMarginalImpactAnalysis(request);
if (response.Status.Code == StatusCode.Success)
{
Console.WriteLine("Marginal Impact analysis submitted with Activity Sid: " + response.ActivitySid);
}
}
}