using System;
using System.Collections.Generic;
using AIR.Services.Common.Data;
using AIR.Services.Common.Filter.Data;
using AIR.Services.DataExport.Api;
class SnippetSubmitLossAnalysisExportRequest
{
private static void ExportLossAnalysisResults(int businessUnitSid, int sqlInstanceSid, int projectSid, int analysisSid,
string exportFolder, string exportFileName, string exportActivityName)
{
DataExportServiceClient client = new DataExportServiceClient();
GetLossAnalysisExportTemplatesRequest request = new GetLossAnalysisExportTemplatesRequest();
request.BusinessUnitSid = businessUnitSid;
request.SqlInstanceSid = sqlInstanceSid;
request.AnalysisSid = analysisSid;
GetLossAnalysisExportTemplatesResponse response = client.GetLossAnalysisExportTemplates(request);
if (response.Status.Code == StatusCode.Success)
{
SubmitLossAnalysisExportRequest exportRequest = new SubmitLossAnalysisExportRequest();
exportRequest.BusinessUnitSid = businessUnitSid;
exportRequest.SqlInstanceSid = sqlInstanceSid;
exportRequest.ExportOptions = new AIR.Services.DataExport.Data.LossAnalysisExportOptions()
{
AnalysisSid = analysisSid,
Filters = GetCompositeExportFilter(),
FinancialPerspectives = AIR.Services.Common.Data.FinancialPerspectives.Gross,
DestinationFolder = exportFolder,
DestinationFileName = exportFileName,
ProjectSid = projectSid,
ActivityName = exportActivityName,
TemplateCodes = response.TemplateCodes
};
SubmitLossAnalysisExportResponse exportResponse = client.SubmitLossAnalysisExport(exportRequest);
if (exportResponse.Status.Code == StatusCode.Success)
Console.WriteLine("Submitted Successfully to HPC with Activity ID: " + exportResponse.ActivitySid);
}
}
private static List<Filter> GetSimpleExportFilter()
{
//None = 0, Peril = 1, Geography = 2, Construction = 3, Occupancy = 4, UserLineOfBusiness = 5
Filter filterPerils = new Filter()
{
ID = 1, //Peril
Expression = new SimpleExpression()
{
AppliedEntity = "LossByEvents",
PropertyName = "Perils",
Operator = FilterOperator.IsContainedIn,
Value = new List<int>() { (int)PerilSetCode.WinterStorm, (int)PerilSetCode.SevereThunderstorm }
}
};
List<Filter> filters = new List<Filter>();
filters.Add(filterPerils);
return filters;
}
private static List<Filter> GetCompositeExportFilter()
{
//None = 0, Peril = 1, Geography = 2, Construction = 3, Occupancy = 4, UserLineOfBusiness = 5
Filter compositeGeographyFilter = new Filter()
{
ID = 2, //Geography
Expression = new CompositeExpression()
{
LogicalOperator = LogicalOperator.And,
FilterExpressions = new List<FilterExpression>()
{
new SimpleExpression()
{
AppliedEntity = "Geographies",
PropertyName = "AreaCode",
Operator = FilterOperator.IsContainedIn,
Value = new List<string>() { "MA", "TX" }
},
new SimpleExpression()
{
AppliedEntity = "Geographies",
PropertyName = "PostalCode",
Operator = FilterOperator.IsContainedIn,
Value = new List<string>() { "02112", "01702", "01770" }
}
}
}
};
List<Filter> filters = new List<Filter>();
filters.Add(compositeGeographyFilter);
return filters;
}
}