public virtual PSDataFactory CreatePSDataFactory(CreatePSDataFactoryParameters parameters)
{
PSDataFactory dataFactory = null;
Action createDataFactory = () =>
{
Dictionary<string, string> tags = new Dictionary<string, string>();
if (parameters.Tags != null)
{
tags = parameters.Tags.ToDictionary();
}
dataFactory =
new PSDataFactory(
CreateOrUpdateDataFactory(parameters.ResourceGroupName, parameters.DataFactoryName,
parameters.Location, tags))
{ ResourceGroupName = parameters.ResourceGroupName };
};
parameters.ConfirmAction(
parameters.Force, // prompt only if the data factory exists
string.Format(
CultureInfo.InvariantCulture,
Resources.DataFactoryExists,
parameters.DataFactoryName,
parameters.ResourceGroupName),
string.Format(
CultureInfo.InvariantCulture,
Resources.DataFactoryCreating,
parameters.DataFactoryName,
parameters.ResourceGroupName),
parameters.DataFactoryName,
createDataFactory,
() => CheckDataFactoryExists(parameters.ResourceGroupName, parameters.DataFactoryName, out dataFactory));
if (!DataFactoryCommonUtilities.IsSucceededProvisioningState(dataFactory.ProvisioningState))
{
string errorMessage = dataFactory.Properties == null
? string.Empty
: dataFactory.Properties.ErrorMessage;
throw new ProvisioningFailedException(errorMessage);
}
return dataFactory;
}