Beispiel #1
0
        private async Task targetAzureContextViewer_AfterContextChanged(AzureLoginContextViewer sender)
        {
            if (sender.SelectedAzureContext.AzureSubscription != null)
            {
                await sender.SelectedAzureContext.AzureSubscription.BindArmResources(targetTreeView1.TargetSettings);
            }

            targetTreeView1.TargetBlobStorageNamespace = sender.SelectedAzureContext.AzureEnvironment.BlobEndpointUrl;
            targetTreeView1.TargetSubscription         = sender.SelectedAzureContext.AzureSubscription;
            await this.targetTreeView1.RefreshExportArtifacts();
        }
        public async Task InitializeDialog(AzureLoginContextViewer azureLoginContextViewer, List <AzureEnvironment> azureEnvironments, List <AzureEnvironment> userDefinedAzureEnvironments)
        {
            try {
                _IsInitializing = true;

                _AzureLoginContextViewer      = azureLoginContextViewer;
                _AzureEnvironments            = azureEnvironments;
                _UserDefinedAzureEnvironments = userDefinedAzureEnvironments;

                await azureArmLoginControl1.BindContext(azureLoginContextViewer.AzureContext, azureEnvironments, userDefinedAzureEnvironments);

                azureLoginContextViewer.ExistingContext.LogProvider.WriteLog("InitializeDialog", "Start AzureSubscriptionContextDialog InitializeDialog");

                lblSameEnviroronment.Text = azureLoginContextViewer.ExistingContext.AzureEnvironment.ToString();
                lblSameTenant.Text        = azureLoginContextViewer.ExistingContext.AzureTenant.ToString();
                lblSameSubscription.Text  = azureLoginContextViewer.ExistingContext.AzureSubscription.ToString();

                lblSameEnvironment2.Text = azureLoginContextViewer.ExistingContext.AzureEnvironment.ToString();
                if (azureLoginContextViewer.ExistingContext.TokenProvider != null && azureLoginContextViewer.ExistingContext.TokenProvider.LastUserInfo != null)
                {
                    lblSameUsername.Text  = azureLoginContextViewer.ExistingContext.TokenProvider.LastUserInfo.DisplayableId;
                    lblSameUsername2.Text = azureLoginContextViewer.ExistingContext.TokenProvider.LastUserInfo.DisplayableId;
                }

                int subscriptionCount = 0;
                cboTenant.Items.Clear();
                if (azureLoginContextViewer.ExistingContext.AzureRetriever != null && azureLoginContextViewer.ExistingContext.TokenProvider != null)
                {
                    azureLoginContextViewer.ExistingContext.LogProvider.WriteLog("InitializeDialog", "Loading Azure Tenants");
                    foreach (AzureTenant azureTenant in await azureLoginContextViewer.ExistingContext.GetAzureARMTenants())
                    {
                        subscriptionCount += azureTenant.Subscriptions.Count;

                        if (azureTenant.Subscriptions.Count > 0) // Only add Tenants that have one or more Subscriptions
                        {
                            if (azureTenant.Subscriptions.Count == 1 && azureTenant.Subscriptions[0] == azureLoginContextViewer.ExistingContext.AzureSubscription)
                            {
                                azureLoginContextViewer.ExistingContext.LogProvider.WriteLog("InitializeDialog", "Not adding Azure Tenant '" + azureTenant.ToString() + "', as it has only one subscription, which is the same as the Existing Azure Context.");
                            }
                            else
                            {
                                cboTenant.Items.Add(azureTenant);
                                azureLoginContextViewer.ExistingContext.LogProvider.WriteLog("InitializeDialog", "Added Azure Tenant '" + azureTenant.ToString() + "'");
                            }
                        }
                        else
                        {
                            azureLoginContextViewer.ExistingContext.LogProvider.WriteLog("InitializeDialog", "Not adding Azure Tenant '" + azureTenant.ToString() + "'.  Contains no subscriptions.");
                        }
                    }
                    cboTenant.Enabled = true;

                    if (azureLoginContextViewer.SelectedAzureContext != null && azureLoginContextViewer.SelectedAzureContext.AzureTenant != null)
                    {
                        foreach (AzureTenant azureTenant in cboTenant.Items)
                        {
                            if (azureLoginContextViewer.SelectedAzureContext.AzureTenant == azureTenant)
                            {
                                cboTenant.SelectedItem = azureTenant;
                            }
                        }
                    }
                }

                rbSameUserDifferentSubscription.Enabled = subscriptionCount > 1;

                switch (azureLoginContextViewer.AzureContextSelectedType)
                {
                case AzureContextSelectedType.ExistingContext:
                    rbExistingContext.Checked = true;
                    break;

                case AzureContextSelectedType.SameUserDifferentSubscription:
                    if (rbSameUserDifferentSubscription.Enabled)
                    {
                        rbSameUserDifferentSubscription.Checked = true;
                    }
                    else
                    {
                        rbExistingContext.Checked = true;
                    }
                    break;

                case AzureContextSelectedType.NewContext:
                    rbNewContext.Checked = true;
                    break;
                }

                azureLoginContextViewer.ExistingContext.LogProvider.WriteLog("InitializeDialog", "End AzureSubscriptionContextDialog InitializeDialog");
            }
            finally
            {
                _IsInitializing = false;
            }

            if (rbSameUserDifferentSubscription.Checked && cboTenant.SelectedIndex == -1 && cboTenant.Items.Count > 0)
            {
                cboTenant.SelectedIndex = 0;
            }

            azureLoginContextViewer.ExistingContext.StatusProvider.UpdateStatus("Ready");
        }