private void OnGameStartCompleted(object sender, LoginCompleteEventArgs e) { if (!this.Dispatcher.CheckAccess()) { this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new LoginCompleteEventHandler((s, e2) => { OnGameStartCompleted(sender, e2); }), sender, e); return; } //Если результат НЕУСПЕШЕН, возвращаем кнопку старта и возможность смены профиля if (e.Code != LoginCode.SUCCESS) { StartButton.IsEnabled = true; if (UpdateRequired) { StartButton.SetBinding(Button.ContentProperty, UpdateButtonBinding); } else { StartButton.SetBinding(Button.ContentProperty, StartButtonBinding); } ProfileManager.OnProfileLocked(false); } //Получаем результат логина switch (e.Code) { case LoginCode.SUCCESS: { //Если логин успешен, сохраняем аргументы текущей сессии вместе с настройками и запускаем игру App.Kernel.Get<LoginManager>().UpdateLastSessionArgs(ProfileManager.CurrentProfile, e.Arguments); EnvironmentManager.Save(); StartGame(e.Arguments); break; } case LoginCode.WRONG_PAGE: //Если получены результаты ошибки на странице, отображаем сообщение с кодом ошибки case LoginCode.UNKNOWN_URL: { //И возвращаем в форму ввода DialogManager.ShowMessageDialog(LanguageManager.Model.LoginLogIn, LanguageManager.Model.LoginWrongPage + string.Format(" [{0}]", e.Code)); break; } } }
public async void OnLoginCompleted(object sender, LoginCompleteEventArgs e) { if (controller != null) { try { await controller.CloseAsync(); if (controller.IsCanceled) { if (LoginCompleted != null) { LoginCompleted(sender, new LoginCompleteEventArgs(LoginCode.CANCELLED)); } return; } } catch (InvalidOperationException) { // sometimes login dialog wrapper is already closed, check for this } } if (e.Code == LoginCode.WRONG_USER) { failedLogin.Add(e.UserName); ShowLoginDialog(LanguageManager.Model.LoginLogIn, LanguageManager.Model.LoginBadAccount, string.Empty); return; } if (LoginCompleted != null) { LoginCompleted(sender, e); } }
protected virtual void OnCompleted(LoginCode code, string arguments, string UserId) { LoginCompleteEventArgs args = new LoginCompleteEventArgs(code, arguments, UserId); if (LogManager != null) { LogManager.InfoFormat("Logging in completed: code={0}, result=\"{1}\", user={2}", code, arguments, UserId); } if (LoginCompleted != null) { LoginCompleted(this, args); } }