private void JoinToGame(object sender, RoutedEventArgs e) { IPEndPoint address; try { //Hide(); address = IPEndPoint.Parse(tbip.Text.Trim()); } catch { MessageBox.Show("Выберите, пожалуйста, комнату или введите корректный адрес:)"); return; } var sudokuWindow = new SudokuWindow(address); sudokuWindow.Closing += (s, e) => Show(); Hide(); sudokuWindow.Show(); }
private void StartGame(string nameOfRoom, string path = "") { if (nameOfRoom.Length > 30) { MessageBox.Show("Имя комнаты не должно превышать 30 символов"); return; } var gameServerWrapper = new GameServerWrapper(nameOfRoom, path); gameServerWrapper.Start(); var grpc = new ClientGrpc(); var sudokuWindow = new SudokuWindow(gameServerWrapper.IPEndPoint); sudokuWindow.Loaded += async(s, e) => { try { await grpc.SendRoom(nameOfRoom, gameServerWrapper.IPEndPoint.Address.ToString(), gameServerWrapper.IPEndPoint.Port.ToString()); } catch { /*ignore*/ } }; sudokuWindow.Closed += async(s, e) => { gameServerWrapper?.Stop(); try { await grpc.DeleteServer(nameOfRoom, gameServerWrapper.IPEndPoint.Address.ToString(), gameServerWrapper.IPEndPoint.Port.ToString()); } catch { /*ignore*/ } Close(); }; Hide(); sudokuWindow.Show(); }