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); }