public VirtualNetwork(AzureContext azureContext, Arm.VirtualNetwork virtualNetwork, List <NetworkSecurityGroup> networkSecurityGroups, List <RouteTable> routeTables)
        {
            this._AzureContext        = azureContext;
            this.SourceVirtualNetwork = virtualNetwork;
            this.TargetName           = virtualNetwork.Name;

            foreach (Arm.VirtualNetworkGateway virtualNetworkGateway in virtualNetwork.VirtualNetworkGateways)
            {
                TargetVirtualNetworkGateways.Add(new VirtualNetworkGateway(_AzureContext, virtualNetworkGateway));
            }

            foreach (Arm.Subnet subnet in virtualNetwork.Subnets)
            {
                this.TargetSubnets.Add(new Subnet(azureContext, this, subnet, networkSecurityGroups, routeTables));
            }

            foreach (String addressPrefix in virtualNetwork.AddressPrefixes)
            {
                this.AddressPrefixes.Add(addressPrefix);
            }

            foreach (String dnsServer in virtualNetwork.DnsServers)
            {
                this.DnsServers.Add(dnsServer);
            }
        }
Beispiel #2
0
        public VirtualNetwork(Arm.VirtualNetwork virtualNetwork, List <NetworkSecurityGroup> networkSecurityGroups, List <RouteTable> routeTables, TargetSettings targetSettings) : base(ArmConst.MicrosoftNetwork, ArmConst.VirtualNetworks)
        {
            this.SourceVirtualNetwork = virtualNetwork;
            this.SetTargetName(virtualNetwork.Name, targetSettings);

            foreach (Arm.VirtualNetworkGateway virtualNetworkGateway in virtualNetwork.VirtualNetworkGateways)
            {
                TargetVirtualNetworkGateways.Add(new VirtualNetworkGateway(virtualNetworkGateway, targetSettings));
            }

            foreach (Arm.Subnet subnet in virtualNetwork.Subnets)
            {
                this.TargetSubnets.Add(new Subnet(this, subnet, networkSecurityGroups, routeTables, targetSettings));
            }

            foreach (String addressPrefix in virtualNetwork.AddressPrefixes)
            {
                this.AddressPrefixes.Add(addressPrefix);
            }

            foreach (String dnsServer in virtualNetwork.DnsServers)
            {
                this.DnsServers.Add(dnsServer);
            }
        }
        private async void rbExistingARMVNet_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton rb = (RadioButton)sender;

            if (rb.Checked)
            {
                #region Add "Existing in Subscription / Location" ARM Virtual Networks to cmbExistingArmVNets

                cmbVirtualNetwork.Items.Clear();
                cmbSubnet.Items.Clear();

                foreach (Arm.VirtualNetwork armVirtualNetwork in _TargetTreeView.GetExistingVirtualNetworksInTargetLocation())
                {
                    if (armVirtualNetwork.HasNonGatewaySubnet)
                    {
                        cmbVirtualNetwork.Items.Add(armVirtualNetwork);
                    }
                }

                #endregion

                #region Seek Target VNet and Subnet as ComboBox SelectedItems

                if (_NetworkInterfaceTarget != null)
                {
                    if (_NetworkInterfaceTarget.GetType() == typeof(NetworkInterfaceIpConfiguration))
                    {
                        NetworkInterfaceIpConfiguration targetNetworkInterface = (NetworkInterfaceIpConfiguration)_NetworkInterfaceTarget;
                        if (targetNetworkInterface.TargetVirtualNetwork != null)
                        {
                            if (targetNetworkInterface.TargetVirtualNetwork.GetType() == typeof(Arm.VirtualNetwork))
                            {
                                Arm.VirtualNetwork targetVirtualNetwork = (Arm.VirtualNetwork)targetNetworkInterface.TargetVirtualNetwork;

                                // Attempt to match target to list items
                                for (int i = 0; i < cmbVirtualNetwork.Items.Count; i++)
                                {
                                    Arm.VirtualNetwork listVirtualNetwork = (Arm.VirtualNetwork)cmbVirtualNetwork.Items[i];
                                    if (listVirtualNetwork == targetVirtualNetwork)
                                    {
                                        cmbVirtualNetwork.SelectedIndex = i;
                                        break;
                                    }
                                }

                                if (targetNetworkInterface.TargetSubnet.GetType() == typeof(Arm.Subnet))
                                {
                                    Arm.Subnet targetSubnet = (Arm.Subnet)targetNetworkInterface.TargetSubnet;

                                    // Attempt to match target to list items
                                    for (int i = 0; i < cmbSubnet.Items.Count; i++)
                                    {
                                        Arm.Subnet listSubnet = (Arm.Subnet)cmbSubnet.Items[i];
                                        if (listSubnet == targetSubnet)
                                        {
                                            cmbSubnet.SelectedIndex = i;
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                #endregion

                if (cmbVirtualNetwork.SelectedIndex < 0 && cmbVirtualNetwork.Items.Count > 0)
                {
                    cmbVirtualNetwork.SelectedIndex = 0;
                }

                if (cmbSubnet.SelectedIndex < 0 && cmbSubnet.Items.Count > 0)
                {
                    cmbSubnet.SelectedIndex = 0;
                }

                if (!_IsBinding)
                {
                    PropertyChanged?.Invoke();
                }
            }
        }