コード例 #1
0
        private object EnsureResourceGroupAsync(OperationRunner context)
        {
            AzureClient client = new AzureClient(WizardContext.TokenProvider);

            client.SetLogger(context.Logger);

            bool exists = client.ResourceGroupExistsAsync(
                DataModel.InstallationConfiguration.Azure.SelectedSubscription.Id,
                DataModel.InstallationConfiguration.Azure.ResourceGroupName).Result;

            Contracts.ResourceGroup resourceGroup = null;

            if (exists)
            {
                resourceGroup = client.GetResourceGroupAsync(
                    DataModel.InstallationConfiguration.Azure.SelectedSubscription.Id,
                    DataModel.InstallationConfiguration.Azure.ResourceGroupName).Result;

                if (!resourceGroup.Tags.ContainsKey(InstallerModel.ResourceGroupTagKey))
                {
                    resourceGroup.Tags.Add(InstallerModel.ResourceGroupTagKey, InstallerModel.ResourceGroupTagValue);
                }
                else
                {
                    resourceGroup.Tags[InstallerModel.ResourceGroupTagKey] = InstallerModel.ResourceGroupTagValue;
                }
            }
            else
            {
                resourceGroup = new Contracts.ResourceGroup()
                {
                    Name     = DataModel.InstallationConfiguration.Azure.ResourceGroupName,
                    Location = DataModel.InstallationConfiguration.Azure.ResourceGroupLocation,
                    Tags     = new Dictionary <string, string>()
                    {
                        { InstallerModel.ResourceGroupTagKey, InstallerModel.ResourceGroupTagValue },
                    },
                };
            }

            return(client.CreateOrUpdateResourceGroupAsync(
                       DataModel.InstallationConfiguration.Azure.SelectedSubscription.Id,
                       resourceGroup).Result);
        }