Пример #1
0
        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();
        }
Пример #2
0
        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();
        }