예제 #1
0
        private async void loginButton_Click(object sender, EventArgs e)
        {
            string username = usernameTextBox.Text;
            string password = passwordTextBox.Text;

            try
            {
                Token token = await _forgameAuthProvider.Authorize(username, password);

                _launcherConfigProvider.AddOrUpdateAccount(new Account {
                    Username = username,
                    Token    = token
                });
                _launcherConfigProvider.UpdateLastUsedAccount(username);

                Router.SetLocation("/");
            }
            catch (NeedToConfirmWithCode ex)
            {
                var queryString = HttpUtility.ParseQueryString(string.Empty);
                queryString.Add("message", ex.Message);
                queryString.Add("username", username);
                queryString.Add("password", password);

                string path = $"/auth/activate/{ex.SessionId}?{queryString}";

                Router.SetLocation(path);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #2
0
        private async void activationCodeTextBox_TextChanged(object sender, EventArgs e)
        {
            if (activationCodeTextBox.TextLength != 6)
            {
                return;
            }

            string sessionId = Router.Params["sessionId"];

            try
            {
                await _forgameAuthProvider.SendActivationCode(
                    sessionId,
                    activationCodeTextBox.Text);

                string username = Router.Query["username"];
                string password = Router.Query["password"];

                Token token = await _forgameAuthProvider.Authorize(username, password);

                _launcherConfigProvider.AddOrUpdateAccount(new Account {
                    Username = username,
                    Token    = token
                });
                _launcherConfigProvider.UpdateLastUsedAccount(username);

                Router.SetLocation("/");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #3
0
 private void accountsListBox_SelectedIndexChanged(object sender, EventArgs e)
 {
     _launcherConfigProvider.UpdateLastUsedAccount((string)accountsListBox.SelectedItem);
 }