Example #1
0
        private void RegisterButtonClick(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(UsernameTxt.Text) || string.IsNullOrEmpty(PasswordTxt.Password))
            {
                MessageBox.Show("Username and password cannot be empty!", "Error in registration", MessageBoxButton.OK,
                                MessageBoxImage.Error);
                return;
            }

            var controller = "User?username="******"&passwordOrRank=" +
                             Crypto.Encrypt(PasswordTxt.Password) +
                             "&mode=register&token=nothing";

            try
            {
                var ans = RestClient.MakeGetRequest(controller);
                if (ans != "\"\"")
                {
                    MessageBox.Show(ans, "Error in registration", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else
                {
                    UsernameTxt.Text     = "";
                    PasswordTxt.Password = "";
                    MessageBox.Show("User " + UsernameTxt.Text + " registered succefully!", "Success", MessageBoxButton.OK,
                                    MessageBoxImage.Information);
                    ChangeModeHelper();
                }
            }
            catch
            {
                MessageBox.Show("Server is not found.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void ReplayRequest()
        {
            var controller = "Replay?user="******"&&token=" + LoggedUser.token;

            try
            {
                var ans       = RestClient.MakeGetRequest(controller);
                var js        = new JavaScriptSerializer();
                var replayAns = js.Deserialize <List <TupleModel <string, string> > >(ans);
                var tmpList   = replayAns.ToList();
                Replays.Clear();
                foreach (var pair in tmpList)
                {
                    var tmpTpl      = new TupleModel <string, string>();
                    var dateAndTime = pair.m_Item1.Split(' ');
                    tmpTpl.m_Item1 = dateAndTime[0].Replace('_', '/') + ' ' + dateAndTime[1].Replace('_', ':');
                    tmpTpl.m_Item2 = pair.m_Item2;
                    Replays.Add(tmpTpl);
                }
                ReplayGrid.ItemsSource = Replays;
                ReplayGrid.Items.Refresh();
            }
            catch
            {
                HandleCrashing();
            }
        }
        private void Spectate_Click(object sender, RoutedEventArgs e)
        {
            var room       = RoomResults[RoomsGrid.SelectedIndex];
            var controller = "Room?userName="******"&gameName=" + room.RoomName +
                             "&playerName=none&option=spectate&token=" + LoggedUser.token;

            try
            {
                var ans       = RestClient.MakeGetRequest(controller);
                var json      = JObject.Parse(ans);
                var roomState = json.ToObject <RoomState>();
                if (roomState.Messege == null)
                {
                    var gameWindow = new GameWindow(LoggedUser, null, roomState, this, null);
                    OpenWindows.Add(gameWindow);
                    Application.Current.MainWindow = gameWindow;
                    gameWindow.Show();
                }
                else
                {
                    MessageBox.Show(roomState.Messege, "Error in spectate", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            catch
            {
                HandleCrashing();
            }
        }
        private void Watch_Click(object sender, RoutedEventArgs e)
        {
            var selection   = Replays[ReplayGrid.SelectedIndex];
            var dateAndTime = selection.m_Item1.Split(' ');
            var controller  = "Replay?user="******"&roomName=" + selection.m_Item2 +
                              "&date=" + dateAndTime[0].Replace('/', '_') + ' ' + dateAndTime[1].Replace(':', '_') +
                              "&token=" + LoggedUser.token;

            try
            {
                var ans = RestClient.MakeGetRequest(controller);
                var js  = new JavaScriptSerializer();
                try
                {
                    var replayStates = js.Deserialize <List <RoomState> >(ans);
                    var gameWindow   = new GameWindow(LoggedUser, LoggedUser.Username, replayStates[0], this, replayStates);
                    OpenWindows.Add(gameWindow);
                    Application.Current.MainWindow = gameWindow;
                    gameWindow.Show();
                }
                catch
                {
                    MessageBox.Show("Replay is not available.", "Error in replay", MessageBoxButton.OK,
                                    MessageBoxImage.Error);
                }
            }
            catch
            {
                HandleCrashing();
            }
        }
 private void Window_Closing(object sender, CancelEventArgs e)
 {
     if (_loggedIn)
     {
         var controller = "User?username="******"&mode=logout&token=" +
                          LoggedUser.token;
         try
         {
             RestClient.MakeGetRequest(controller);
         }
         catch
         { }
         finally
         {
             foreach (var w in OpenWindows)
             {
                 if (w != null && w.Playing)
                 {
                     w.Playing = false;
                     w.Close();
                 }
             }
             if (ProfileWindow != null)
             {
                 ProfileWindow.Open = false;
                 ProfileWindow.Close();
             }
             var login = new LoginWindow();
             Application.Current.MainWindow = login;
             _loggedIn = false;
             login.Show();
         }
     }
 }