public ServerMasterUi() { InitializeComponent(); List <IServer> servers = ServerMaster.GetServers(); if (servers == null && ServerMaster.StartProgram == ServerStartProgramm.IsTester) { // если это первый вызов сервера во время включённого тестера ServerMaster.CreateServer(ServerType.Tester, false); servers = ServerMaster.GetServers(); } if (ServerMaster.StartProgram == ServerStartProgramm.IsTester) { // если это первый вызов сервера во время включённого тестера servers = ServerMaster.GetServers(); Close(); servers[0].ShowDialog(); } CreateSourceGrid(); RePaintSourceGrid(); CheckBoxServerAutoOpen.IsChecked = ServerMaster.NeadToConnectAuto; CheckBoxServerAutoOpen.Click += CheckBoxServerAutoOpen_Click; CheckBoxServerAutoOpen.ToolTip = "При включении, мастер серверов будет пытаться автоматически развернуть " + "\r" + "сервера которые у него запрашивают роботы(панели). По одному разу на каждый сервер. "; for (int i = 0; servers != null && i < servers.Count; i++) { servers[i].ConnectStatusChangeEvent += ServerStatusChangeEvent; } }
/// <summary> /// событие двойного клика на таблицу источников /// </summary> void _gridSources_DoubleClick(object sender, EventArgs e) { if (_gridSources.CurrentCell.RowIndex <= -1) { return; } ServerType type; Enum.TryParse(_gridSources.SelectedRows[0].Cells[0].Value.ToString(), out type); List <IServer> servers = ServerMaster.GetServers(); if (servers == null || servers.Find(serv => serv.ServerType == type) == null) { // нужно впервые создать сервер ServerMaster.CreateServer(type, true); servers = ServerMaster.GetServers(); if (servers == null) { // чтото пошло не так return; } else { // подписываемся на событие изменения статуса IServer myServ = servers.Find(serv => serv.ServerType == type); if (myServ != null) { myServ.ConnectStatusChangeEvent += ServerStatusChangeEvent; } } } IServer myServer = servers.Find(serv => serv.ServerType == type); if (myServer == null) { return; } Close(); myServer.ShowDialog(); }