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;
}
}
}