public virtual PSLinkedService CreatePSLinkedService(CreatePSLinkedServiceParameters parameters)
{
if (parameters == null)
{
throw new ArgumentNullException("parameters");
}
PSLinkedService linkedService = null;
Action createLinkedService = () =>
{
linkedService =
new PSLinkedService(CreateOrUpdateLinkedService(parameters.ResourceGroupName,
parameters.DataFactoryName,
parameters.Name,
parameters.RawJsonContent))
{
ResourceGroupName = parameters.ResourceGroupName,
DataFactoryName = parameters.DataFactoryName
};
if (!DataFactoryCommonUtilities.IsSucceededProvisioningState(linkedService.ProvisioningState))
{
string errorMessage = linkedService.Properties == null
? string.Empty
: linkedService.Properties.ErrorMessage;
throw new ProvisioningFailedException(errorMessage);
}
};
parameters.ConfirmAction(
parameters.Force, // prompt only if the linked service exists
string.Format(
CultureInfo.InvariantCulture,
Resources.LinkedServiceExists,
parameters.Name,
parameters.DataFactoryName),
string.Format(
CultureInfo.InvariantCulture,
Resources.LinkedServiceCreating,
parameters.Name,
parameters.DataFactoryName),
parameters.Name,
createLinkedService,
() => CheckLinkedServiceExists(parameters.ResourceGroupName,
parameters.DataFactoryName, parameters.Name));
return linkedService;
}