public static void AddGoldSourceServer(this MainWindow mainWindow)
        {
            IServer server = new GoldSourceServer();
            AddEditServerGoldSource editWindow = new AddEditServerGoldSource(mainWindow, server);

            editWindow.Title = Properties.Resources.aes_AddNewServerTitle;
            if (editWindow.ShowDialog() == true)
            {
                mainWindow._serversControl.Servers.Add(server);
                CreateControlsForServer(mainWindow, server);
                SaveOptions(mainWindow, mainWindow._configFileName);
            }
        }
        public static void ImportServers(this MainWindow mainWindow)
        {
            string         oldConfigFileName = "servers.xml";
            OpenFileDialog dialog            = new OpenFileDialog();

            dialog.DefaultExt = oldConfigFileName;
            dialog.Filter     = string.Format("{0}|{1}", Properties.Resources.mw_OldHldslOptionsFile, oldConfigFileName);
            if (dialog.ShowDialog() == true)
            {
                XElement oldConfig    = XElement.Load(dialog.FileName);
                int      serversAdded = 0;
                foreach (XElement xServer in oldConfig.XPathSelectElements("Servers/Server"))
                {
                    IServer server = null;
                    switch (xServer.XPathSelectElement("Game").Value)
                    {
                    case "cstrike":
                    {
                        server = new GoldSourceServer();
                        (server.Options as GoldSourceServerOptions).Game = GoldSourceGame.cstrike;

                        if (xServer.XPathSelectElement("Ip") != null)
                        {
                            (server.Options as GoldSourceServerOptions).Ip = xServer.XPathSelectElement("Ip").Value;
                        }
                        if (xServer.XPathSelectElement("Port") != null)
                        {
                            (server.Options as GoldSourceServerOptions).Port = xServer.XPathSelectElement("Port").Value;
                        }
                        if (xServer.XPathSelectElement("Map") != null)
                        {
                            (server.Options as GoldSourceServerOptions).Map = xServer.XPathSelectElement("Map").Value;
                        }
                        if (xServer.XPathSelectElement("MaxPlayers") != null)
                        {
                            (server.Options as GoldSourceServerOptions).MaxPlayers = int.Parse(xServer.XPathSelectElement("MaxPlayers").Value);
                        }
                        if (xServer.XPathSelectElement("RconPassword") != null)
                        {
                            (server.Options as GoldSourceServerOptions).RconPassword = xServer.XPathSelectElement("RconPassword").Value;
                        }
                        if (xServer.XPathSelectElement("HostName") != null)
                        {
                            (server.Options as GoldSourceServerOptions).HostName = xServer.XPathSelectElement("HostName").Value;
                        }
                        if (xServer.XPathSelectElement("DopArgs") != null)
                        {
                            (server.Options as GoldSourceServerOptions).AdditionalCommandLineArgs = xServer.XPathSelectElement("DopArgs").Value;
                        }
                        if (xServer.XPathSelectElement("HldsExe") != null)
                        {
                            (server.Options as GoldSourceServerOptions).ExecutablePath = xServer.XPathSelectElement("HldsExe").Value;
                        }
                        if (xServer.XPathSelectElement("ConsolePosX") != null)
                        {
                            (server.Options as GoldSourceServerOptions).ConsolePositionX = int.Parse(xServer.XPathSelectElement("ConsolePosX").Value);
                        }
                        if (xServer.XPathSelectElement("ConsolePosY") != null)
                        {
                            (server.Options as GoldSourceServerOptions).ConsolePositionY = int.Parse(xServer.XPathSelectElement("ConsolePosY").Value);
                        }
                        if (xServer.XPathSelectElement("AutoRestart") != null)
                        {
                            (server.Options as GoldSourceServerOptions).AutoRestart = bool.Parse(xServer.XPathSelectElement("AutoRestart").Value);
                        }
                        if (xServer.XPathSelectElement("ActiveServer") != null)
                        {
                            (server.Options as GoldSourceServerOptions).ActiveServer = bool.Parse(xServer.XPathSelectElement("ActiveServer").Value);
                        }
                        if (xServer.XPathSelectElement("IntegratedConsole") != null)
                        {
                            (server.Options as GoldSourceServerOptions).ConsoleType = (bool.Parse(xServer.XPathSelectElement("IntegratedConsole").Value) ? ConsoleType.Integrated : ConsoleType.Native);
                        }

                        break;
                    }

                    case "cstrikesource":
                    {
                        server = new SourceServer();
                        (server.Options as SourceServerOptions).Game = SourceGame.cstrike;

                        if (xServer.XPathSelectElement("Ip") != null)
                        {
                            (server.Options as SourceServerOptions).Ip = xServer.XPathSelectElement("Ip").Value;
                        }
                        if (xServer.XPathSelectElement("Port") != null)
                        {
                            (server.Options as SourceServerOptions).Port = xServer.XPathSelectElement("Port").Value;
                        }
                        if (xServer.XPathSelectElement("Map") != null)
                        {
                            (server.Options as SourceServerOptions).Map = xServer.XPathSelectElement("Map").Value;
                        }
                        if (xServer.XPathSelectElement("MaxPlayers") != null)
                        {
                            (server.Options as SourceServerOptions).MaxPlayers = int.Parse(xServer.XPathSelectElement("MaxPlayers").Value);
                        }
                        if (xServer.XPathSelectElement("RconPassword") != null)
                        {
                            (server.Options as SourceServerOptions).RconPassword = xServer.XPathSelectElement("RconPassword").Value;
                        }
                        if (xServer.XPathSelectElement("HostName") != null)
                        {
                            (server.Options as SourceServerOptions).HostName = xServer.XPathSelectElement("HostName").Value;
                        }
                        if (xServer.XPathSelectElement("DopArgs") != null)
                        {
                            (server.Options as SourceServerOptions).AdditionalCommandLineArgs = xServer.XPathSelectElement("DopArgs").Value;
                        }
                        if (xServer.XPathSelectElement("HldsExe") != null)
                        {
                            (server.Options as SourceServerOptions).ExecutablePath = xServer.XPathSelectElement("HldsExe").Value;
                        }
                        if (xServer.XPathSelectElement("ConsolePosX") != null)
                        {
                            (server.Options as SourceServerOptions).ConsolePositionX = int.Parse(xServer.XPathSelectElement("ConsolePosX").Value);
                        }
                        if (xServer.XPathSelectElement("ConsolePosY") != null)
                        {
                            (server.Options as SourceServerOptions).ConsolePositionY = int.Parse(xServer.XPathSelectElement("ConsolePosY").Value);
                        }
                        if (xServer.XPathSelectElement("AutoRestart") != null)
                        {
                            (server.Options as SourceServerOptions).AutoRestart = bool.Parse(xServer.XPathSelectElement("AutoRestart").Value);
                        }
                        if (xServer.XPathSelectElement("ActiveServer") != null)
                        {
                            (server.Options as SourceServerOptions).ActiveServer = bool.Parse(xServer.XPathSelectElement("ActiveServer").Value);
                        }
                        if (xServer.XPathSelectElement("IntegratedConsole") != null)
                        {
                            (server.Options as SourceServerOptions).ConsoleType = (bool.Parse(xServer.XPathSelectElement("IntegratedConsole").Value) ? ConsoleType.Integrated : ConsoleType.Native);
                        }

                        break;
                    }

                    case "hltv":
                    {
                        server = new ValveHltvServer();

                        if (xServer.XPathSelectElement("Ip") != null)
                        {
                            (server.Options as ValveHltvServerOptions).Ip = xServer.XPathSelectElement("Ip").Value;
                        }
                        if (xServer.XPathSelectElement("Port") != null)
                        {
                            (server.Options as ValveHltvServerOptions).Port = xServer.XPathSelectElement("Port").Value;
                        }
                        if (xServer.XPathSelectElement("Map") != null)
                        {
                            (server.Options as ValveHltvServerOptions).HostName = xServer.XPathSelectElement("HostName").Value;
                        }
                        if (xServer.XPathSelectElement("DopArgs") != null)
                        {
                            (server.Options as ValveHltvServerOptions).AdditionalCommandLineArgs = xServer.XPathSelectElement("DopArgs").Value;
                        }
                        if (xServer.XPathSelectElement("HldsExe") != null)
                        {
                            (server.Options as ValveHltvServerOptions).ExecutablePath = xServer.XPathSelectElement("HldsExe").Value;
                        }
                        if (xServer.XPathSelectElement("ConsolePosX") != null)
                        {
                            (server.Options as ValveHltvServerOptions).ConsolePositionX = int.Parse(xServer.XPathSelectElement("ConsolePosX").Value);
                        }
                        if (xServer.XPathSelectElement("ConsolePosY") != null)
                        {
                            (server.Options as ValveHltvServerOptions).ConsolePositionY = int.Parse(xServer.XPathSelectElement("ConsolePosY").Value);
                        }
                        if (xServer.XPathSelectElement("AutoRestart") != null)
                        {
                            (server.Options as ValveHltvServerOptions).AutoRestart = bool.Parse(xServer.XPathSelectElement("AutoRestart").Value);
                        }
                        if (xServer.XPathSelectElement("ActiveServer") != null)
                        {
                            (server.Options as ValveHltvServerOptions).ActiveServer = bool.Parse(xServer.XPathSelectElement("ActiveServer").Value);
                        }

                        break;
                    }
                    }
                    if (server != null)
                    {
                        mainWindow._serversControl.Servers.Add(server);
                        CreateControlsForServer(mainWindow, server);
                        serversAdded++;
                        _logger.Info(string.Format(Properties.Resources.mw_ServerImported, server.Options.HostName));
                    }
                }
                if (serversAdded > 0)
                {
                    SaveOptions(mainWindow, mainWindow._configFileName);
                }
            }
        }