public void PromoteUserAsset(WorkspaceSetting setting, string experimentId, string nodeId, string nodeOutputName, string assetName, string assetDescription, UserAssetType assetType, string familyId)
{
ValidateWorkspaceSetting(setting);
Util.AuthorizationToken = setting.AuthorizationToken;
string queryUrl = StudioApi + string.Format("workspaces/{0}/{1}", setting.WorkspaceId, assetType == UserAssetType.Transform ? "transformmodules" : (assetType == UserAssetType.TrainedModel ? "trainedmodels" : "datasources"));
string postPayloadInJson = string.Empty;
switch (assetType)
{
case UserAssetType.Transform:
var transformPayload = new
{
ExperimentId = experimentId,
ModuleNodeId = nodeId,
OutputName = nodeOutputName,
Transform = new
{
Name = assetName,
DataTypeId = "iTransformDotNet",
Description = assetDescription,
SourceOrigin = "FromOutputPromotion",
FamilyId = familyId
}
};
postPayloadInJson = jss.Serialize(transformPayload);
break;
case UserAssetType.TrainedModel:
var trainedModelPayload = new
{
ExperimentId = experimentId,
ModuleNodeId = nodeId,
OutputName = nodeOutputName,
TrainedModel = new
{
Name = assetName,
DataTypeId = "iLearnerDotNet",
Description = assetDescription,
SourceOrigin = "FromOutputPromotion",
FamilyId = familyId
}
};
postPayloadInJson = jss.Serialize(trainedModelPayload);
break;
case UserAssetType.Dataset:
var datasetPayload = new
{
ExperimentId = experimentId,
ModuleNodeId = nodeId,
OutputName = nodeOutputName,
DataSource = new
{
Name = assetName,
DataTypeId = "Dataset",
Description = assetDescription,
SourceOrigin = "FromOutputPromotion",
FamilyId = familyId
}
};
postPayloadInJson = jss.Serialize(datasetPayload);
break;
}
HttpResult hr = Util.HttpPost(queryUrl, postPayloadInJson).Result;
if (hr.IsSuccess)
{
return;
}
throw new AmlRestApiException(hr);
}
#endregion