Network_Manager.Gadget.ControlPanel.Routes.SavedRoutes.UnloadForm.defaultIPv4GatewayMode_SelectedIndexChanged C# (CSharp) Method

defaultIPv4GatewayMode_SelectedIndexChanged() private method

private defaultIPv4GatewayMode_SelectedIndexChanged ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void defaultIPv4GatewayMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            // manual
            if (defaultIPv4GatewayMode.SelectedIndex == 0)
            {
                defaultIPv4Gateway.Items.Clear();
                defaultIPv4Gateway.DropDownStyle = ComboBoxStyle.Simple;
                defaultIPv4Gateway.Enabled = true;
                if (lastIPv4GatewayMode != 0)
                    defaultIPv4Gateway.Text = lastIPv4Gateway;
                lastIPv4GatewayMode = 0;
            }
            // interface default gateway
            if (defaultIPv4GatewayMode.SelectedIndex == 1)
            {
                if (lastIPv4GatewayMode == 0)
                    lastIPv4Gateway = defaultIPv4Gateway.Text;
                lastIPv4GatewayMode = 1;
                defaultIPv4Gateway.Items.Clear();
                defaultIPv4Gateway.DropDownStyle = ComboBoxStyle.DropDownList;
                defaultIPv4Gateway.Enabled = true;
                if (defaultIPv4Interface.SelectedIndex == -1)
                {
                    return;
                }
                int ifIndex = int.Parse(Regex.Replace(defaultIPv4Interface.Text, @"^(\d+) .*$", "$1"));
                if (Global.NetworkInterfaces.Values.Where((i) => i.Index == ifIndex).Count() > 0)
                    if (Global.NetworkInterfaces.Values.Where((i) => i.Index == ifIndex).First().IPv4Gateway.Count > 0)
                        foreach (NetworkInterface.IPGatewayAddress ip in Global.NetworkInterfaces.Values.Where((i) => i.Index == ifIndex).First().IPv4Gateway)
                            defaultIPv4Gateway.Items.Add(ip.Address);
                if (Environment.OSVersion.Version.CompareTo(new Version("6.0")) > -1)
                    defaultIPv4Gateway.Items.Add("0.0.0.0");
                if (defaultIPv4Gateway.Items.Count > 0)
                    defaultIPv4Gateway.SelectedIndex = 0;
            }
            // no gateway
            if (defaultIPv4GatewayMode.SelectedIndex == 2)
            {
                if (lastIPv4GatewayMode == 0)
                    lastIPv4Gateway = defaultIPv4Gateway.Text;
                lastIPv4GatewayMode = 2;
                defaultIPv4Gateway.Items.Clear();
                defaultIPv4Gateway.DropDownStyle = ComboBoxStyle.DropDownList;
                defaultIPv4Gateway.Enabled = true;
                if (defaultIPv4Interface.SelectedIndex == -1)
                    return;
                int ifIndex = int.Parse(Regex.Replace(defaultIPv4Interface.Text, @"^(\d+) .*$", "$1"));
                if (Environment.OSVersion.Version.CompareTo(new Version("6.0")) < 0)
                {
                    if (defaultIPv4Interface.SelectedIndex != defaultIPv4Interface.Items.Count - 1)
                        if (Global.NetworkInterfaces.Values.Where((i) => i.Index == ifIndex).First().IPv4Address.Count > 0)
                            foreach (NetworkInterface.IPHostAddress ip in Global.NetworkInterfaces.Values.Where((i) => i.Index == ifIndex).First().IPv4Address)
                                defaultIPv4Gateway.Items.Add(ip.Address);
                }
                else
                    defaultIPv4Gateway.Items.Add("0.0.0.0");
                if (defaultIPv4Gateway.Items.Count > 0)
                    defaultIPv4Gateway.SelectedIndex = 0;
            }
            // loaded route regardless
            if (defaultIPv4GatewayMode.SelectedIndex == 3)
            {
                if (lastIPv4GatewayMode == 0)
                    lastIPv4Gateway = defaultIPv4Gateway.Text;
                defaultIPv4Gateway.SelectedIndex = -1;
                defaultIPv4Gateway.Items.Clear();
                defaultIPv4Gateway.DropDownStyle = ComboBoxStyle.Simple;
                defaultIPv4Gateway.Enabled = false;
                lastIPv4GatewayMode = 3;
            }
        }