public virtual PSHub CreatePSHub(CreatePSHubParameters parameters)
{
if (parameters == null)
{
throw new ArgumentNullException("parameters");
}
PSHub hub = null;
Action createHub = () =>
{
hub =
new PSHub(
this.CreateOrUpdateHub(
parameters.ResourceGroupName,
parameters.DataFactoryName,
parameters.Name,
parameters.RawJsonContent))
{ DataFactoryName = parameters.DataFactoryName, ResourceGroupName = parameters.ResourceGroupName };
if (!DataFactoryCommonUtilities.IsSucceededProvisioningState(hub.ProvisioningState))
{
// ToDo: service side should set the error message for provisioning failures.
throw new ProvisioningFailedException(Resources.HubProvisioningFailed);
}
};
if (parameters.Force)
{
createHub();
}
else
{
bool hubExists = this.CheckHubExists(
parameters.ResourceGroupName,
parameters.DataFactoryName,
parameters.Name);
parameters.ConfirmAction(
!hubExists,
string.Format(
CultureInfo.InvariantCulture,
Resources.HubExists,
parameters.Name,
parameters.DataFactoryName),
string.Format(
CultureInfo.InvariantCulture,
Resources.HubCreating,
parameters.Name,
parameters.DataFactoryName),
parameters.Name,
createHub);
}
return hub;
}