BF2Statistics.Redirector.SetRedirectMode C# (CSharp) Method

SetRedirectMode() public static method

Sets a new Redirect method. Using this method removes any previous redirects
public static SetRedirectMode ( RedirectMode Mode ) : bool
Mode RedirectMode The new redirect mode
return bool
        public static bool SetRedirectMode(RedirectMode Mode)
        {
            // If not change is made, return
            if (Mode == RedirectMethod) return false;

            // Remove old redirects first
            if (RedirectsEnabled) RemoveRedirects();

            // Set new method
            RedirectMethod = Mode;

            // Save config
            Program.Config.RedirectMode = Mode;
            Program.Config.Save();
            return true;
        }

Usage Example

        /// <summary>
        /// Event fired when the Next button is pushed
        /// </summary>
        private async void NextBtn_Click(object sender, EventArgs e)
        {
            // Get our next step
            switch (pageControl1.SelectedTab.Name)
            {
            case "tabPageSelect":
                // Make sure we are going to redirect something...
                if (!Bf2webCheckbox.Checked && !GpcmCheckbox.Checked)
                {
                    MessageBox.Show(
                        "Please select at least 1 redirect option",
                        "Select an Option", MessageBoxButtons.OK, MessageBoxIcon.Information
                        );
                    return;
                }

                // Show loading status so the user sees progress
                StatusPic.Visible = StatusText.Visible = true;
                NextBtn.Enabled   = false;

                // Validate hostnames, and convert them to IPAddresses
                bool IsValid = await GetRedirectAddressesAsync();

                if (IsValid)
                {
                    Step = pageControl1.TabPages.IndexOf(tabPageRedirectType);
                }

                // Hide status icon and next
                StatusPic.Visible = StatusText.Visible = false;
                break;

            case "tabPageRedirectType":
                if (IcsRadio.Checked)
                {
                    Step = pageControl1.TabPages.IndexOf(tabPageVerifyIcs);
                }
                else if (HostsRadio.Checked)
                {
                    Step = pageControl1.TabPages.IndexOf(tabPageVerifyHosts);
                }
                else
                {
                    Step = pageControl1.TabPages.IndexOf(tabPageDiagnostic);
                }

                // Set new redirect options
                Redirector.SetRedirectMode(SelectedMode);
                Redirector.StatsServerAddress   = StatsServerAddress;
                Redirector.GamespyServerAddress = GamespyServerAddress;
                break;

            case "tabPageVerifyIcs":
            case "tabPageVerifyHosts":
                // Reset diag page
                Status1.Image = Status2.Image = Status4.Image = Status5.Image = null;
                Address1.Text = Address2.Text = Address4.Text = Address5.Text = "Queued";

                // Get our next page index
                Step = pageControl1.TabPages.IndexOf(tabPageDiagnostic);
                break;

            case "tabPageDiagnostic":
                // All processing is done in the after select
                Step = pageControl1.TabPages.IndexOf(tabPageSuccess);
                break;

            case "tabPageError":
            case "tabPageSuccess":
                this.DialogResult = DialogResult.OK;
                this.Close();
                break;
            }

            // Make sure we have a change before changing our index
            if (Step == pageControl1.SelectedIndex)
            {
                return;
            }

            // Set the new index
            pageControl1.SelectedIndex = Step;
        }