private async Task _AzureContextSourceASM_AfterAzureSubscriptionChange(AzureContext sender) { ResetForm(); try { if (sender.AzureSubscription != null) { if (_AzureContextTargetARM.AzureSubscription == null) { await _AzureContextTargetARM.SetSubscriptionContext(_AzureContextSourceASM.AzureSubscription); } azureLoginContextViewerARM.Enabled = true; this.TemplateGenerator.SourceSubscription = _AzureContextSourceASM.AzureSubscription; this.TemplateGenerator.TargetSubscription = _AzureContextTargetARM.AzureSubscription; #region Bind Source ASM Objects TreeNode subscriptionNodeASM = new TreeNode(sender.AzureSubscription.Name); treeSourceASM.Nodes.Add(subscriptionNodeASM); subscriptionNodeASM.Expand(); List <Azure.Asm.VirtualNetwork> asmVirtualNetworks = await _AzureContextSourceASM.AzureRetriever.GetAzureAsmVirtualNetworks(); foreach (Azure.Asm.VirtualNetwork asmVirtualNetwork in asmVirtualNetworks) { if (asmVirtualNetwork.HasNonGatewaySubnet) { TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNodeASM, asmVirtualNetwork.Location, "Virtual Networks"); TreeNode tnVirtualNetwork = new TreeNode(asmVirtualNetwork.Name); tnVirtualNetwork.Name = asmVirtualNetwork.Name; tnVirtualNetwork.Tag = asmVirtualNetwork; parentNode.Nodes.Add(tnVirtualNetwork); parentNode.Expand(); } } foreach (Azure.Asm.StorageAccount asmStorageAccount in await _AzureContextSourceASM.AzureRetriever.GetAzureAsmStorageAccounts()) { TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNodeASM, asmStorageAccount.GeoPrimaryRegion, "Storage Accounts"); TreeNode tnStorageAccount = new TreeNode(asmStorageAccount.Name); tnStorageAccount.Name = tnStorageAccount.Text; tnStorageAccount.Tag = asmStorageAccount; parentNode.Nodes.Add(tnStorageAccount); parentNode.Expand(); } List <CloudService> asmCloudServices = await _AzureContextSourceASM.AzureRetriever.GetAzureAsmCloudServices(); foreach (CloudService asmCloudService in asmCloudServices) { foreach (Azure.Asm.VirtualMachine asmVirtualMachine in asmCloudService.VirtualMachines) { TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNodeASM, asmCloudService.Location, "Cloud Services"); TreeNode[] cloudServiceNodeSearch = parentNode.Nodes.Find(asmCloudService.ServiceName, false); TreeNode cloudServiceNode = null; if (cloudServiceNodeSearch.Count() == 1) { cloudServiceNode = cloudServiceNodeSearch[0]; } if (cloudServiceNode == null) { cloudServiceNode = new TreeNode(asmCloudService.ServiceName); cloudServiceNode.Name = asmCloudService.ServiceName; cloudServiceNode.Tag = asmCloudService; parentNode.Nodes.Add(cloudServiceNode); parentNode.Expand(); } TreeNode virtualMachineNode = new TreeNode(asmVirtualMachine.RoleName); virtualMachineNode.Name = asmVirtualMachine.RoleName; virtualMachineNode.Tag = asmVirtualMachine; cloudServiceNode.Nodes.Add(virtualMachineNode); cloudServiceNode.Expand(); } } foreach (Azure.Asm.NetworkSecurityGroup asmNetworkSecurityGroup in await _AzureContextSourceASM.AzureRetriever.GetAzureAsmNetworkSecurityGroups()) { TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNodeASM, asmNetworkSecurityGroup.Location, "Network Security Groups"); TreeNode tnStorageAccount = new TreeNode(asmNetworkSecurityGroup.Name); tnStorageAccount.Name = tnStorageAccount.Text; tnStorageAccount.Tag = asmNetworkSecurityGroup; parentNode.Nodes.Add(tnStorageAccount); parentNode.Expand(); } subscriptionNodeASM.ExpandAll(); #endregion #region Bind Source ARM Objects TreeNode subscriptionNodeARM = new TreeNode("ARM Resources Coming Soon!!"); // TreeNode subscriptionNodeARM = new TreeNode(sender.AzureSubscription.Name); treeSourceARM.Nodes.Add(subscriptionNodeARM); subscriptionNodeARM.Expand(); //foreach (ResourceGroup armResourceGroup in await _AzureContextSourceASM.AzureRetriever.GetAzureARMResourceGroups()) //{ //} //foreach (Azure.Arm.AvailabilitySet armAvailabilitySet in await _AzureContextSourceASM.AzureRetriever.GetAzureARMAvailabilitySets()) //{ //} //List<Azure.Arm.VirtualNetwork> armVirtualNetworks = await _AzureContextSourceASM.AzureRetriever.GetAzureARMVirtualNetworks(); //foreach (Azure.Arm.VirtualNetwork armVirtualNetwork in armVirtualNetworks) //{ // if (armVirtualNetwork.HasNonGatewaySubnet) // { // TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNodeARM, armVirtualNetwork.Location, "Virtual Networks"); // TreeNode tnVirtualNetwork = new TreeNode(armVirtualNetwork.Name); // tnVirtualNetwork.Name = armVirtualNetwork.Name; // tnVirtualNetwork.Tag = armVirtualNetwork; // parentNode.Nodes.Add(tnVirtualNetwork); // parentNode.Expand(); // } //} //foreach (Azure.Arm.StorageAccount armStorageAccount in await _AzureContextSourceASM.AzureRetriever.GetAzureARMStorageAccounts()) //{ // TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNodeARM, armStorageAccount.PrimaryLocation, "Storage Accounts"); // TreeNode tnStorageAccount = new TreeNode(armStorageAccount.Name); // tnStorageAccount.Name = tnStorageAccount.Text; // tnStorageAccount.Tag = armStorageAccount; // parentNode.Nodes.Add(tnStorageAccount); // parentNode.Expand(); //} //foreach (Azure.Arm.VirtualMachine armVirtualMachine in await _AzureContextSourceASM.AzureRetriever.GetAzureArmVirtualMachines()) //{ // TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNodeARM, armVirtualMachine.Location, "Virtual Machines"); // TreeNode tnVirtualMachine = new TreeNode(armVirtualMachine.Name); // tnVirtualMachine.Name = tnVirtualMachine.Text; // tnVirtualMachine.Tag = armVirtualMachine; // parentNode.Nodes.Add(tnVirtualMachine); // parentNode.Expand(); //} subscriptionNodeARM.ExpandAll(); #endregion await ReadSubscriptionSettings(sender.AzureSubscription); treeSourceASM.Enabled = true; //treeSourceARM.Enabled = true; treeTargetARM.Enabled = true; } } catch (Exception exc) { UnhandledExceptionDialog unhandledException = new UnhandledExceptionDialog(LogProvider, exc); unhandledException.ShowDialog(); } StatusProvider.UpdateStatus("Ready"); }
private async Task _AzureContextARM_AfterAzureSubscriptionChange(AzureContext sender) { ResetForm(); if (sender.AzureSubscription != null) { //btnAzureContextARM.Enabled = true; TreeNode subscriptionNode = new TreeNode(sender.AzureSubscription.Name); treeSource.Nodes.Add(subscriptionNode); subscriptionNode.Expand(); foreach (ResourceGroup armResourceGroup in await _AzureContextARM.AzureRetriever.GetAzureARMResourceGroups()) { } List <VirtualNetwork> armVirtualNetworks = await _AzureContextARM.AzureRetriever.GetAzureARMVirtualNetworks(); foreach (VirtualNetwork armVirtualNetwork in armVirtualNetworks) { if (armVirtualNetwork.HasNonGatewaySubnet) { TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNode, armVirtualNetwork.Location, "Virtual Networks"); TreeNode tnVirtualNetwork = new TreeNode(armVirtualNetwork.Name); tnVirtualNetwork.Name = armVirtualNetwork.Name; tnVirtualNetwork.Tag = armVirtualNetwork; parentNode.Nodes.Add(tnVirtualNetwork); parentNode.Expand(); } } foreach (StorageAccount armStorageAccount in await _AzureContextARM.AzureRetriever.GetAzureARMStorageAccounts()) { TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNode, armStorageAccount.PrimaryLocation, "Storage Accounts"); TreeNode tnStorageAccount = new TreeNode(armStorageAccount.Name); tnStorageAccount.Name = tnStorageAccount.Text; tnStorageAccount.Tag = armStorageAccount; parentNode.Nodes.Add(tnStorageAccount); parentNode.Expand(); } foreach (VirtualMachine armVirtualMachine in await _AzureContextARM.AzureRetriever.GetAzureArmVirtualMachines()) { TreeNode parentNode = MigAzTreeView.GetDataCenterTreeViewNode(subscriptionNode, armVirtualMachine.Location, "Virtual Machines"); TreeNode tnVirtualMachine = new TreeNode(armVirtualMachine.Name); tnVirtualMachine.Name = tnVirtualMachine.Text; tnVirtualMachine.Tag = armVirtualMachine; parentNode.Nodes.Add(tnVirtualMachine); parentNode.Expand(); } subscriptionNode.ExpandAll(); // if (app.Default.SaveSelection) // { // lblStatus.Text = "BUSY: Reading saved selection"; // Application.DoEvents(); // _saveSelectionProvider.Read(Guid.Parse(subscriptionid),ref lvwVirtualNetworks, ref lvwStorageAccounts, ref lvwVirtualMachines); // } treeSource.Enabled = true; } StatusProvider.UpdateStatus("Ready"); }