private async void SignIn(String login, String password, long?captchaSid = null, string captchaKey = null) { var app = App.Current as App; try { await app.SignInAsync(LoginTextBox.Text, PasswordBox.Password, captchaSid, captchaKey); } catch (VkApiAuthorizationException exception) { await Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Authenticating = false; } ); // TODO: Вывести куда-нибудь сообщения var alert = new ContentDialog() { Title = "Не удается войти", Content = "Проверьте правильность логина и пароля", PrimaryButtonText = "OK" }; Debug.WriteLine(exception.Message); await alert.ShowAsync(); return; } catch (CaptchaNeededException exception) { await Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Authenticating = false; } ); // TODO: Заменить диалог на что-нибудь более приятное CaptchaImage.Source = new BitmapImage(exception.Img); var result = await CaptchaDialog.ShowAsync(); if (result == ContentDialogResult.Primary) { SignIn( LoginTextBox.Text, PasswordBox.Password, exception.Sid, CaptchaTextBox.Text); } return; } catch (VkApiException exception) { await Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Authenticating = false; } ); // TODO: Вывести куда-нибудь сообщения var alert = new ContentDialog() { Title = "Ошибка", Content = exception.Message, PrimaryButtonText = "OK" }; Debug.WriteLine(exception.Message); await alert.ShowAsync(); return; } catch (Exception exception) { await Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Authenticating = false; } ); // TODO: Вывести куда-нибудь сообщения var alert = new ContentDialog() { Title = "Ошибка", Content = exception.Message, PrimaryButtonText = "OK" }; Debug.WriteLine(exception.Message); await alert.ShowAsync(); return; } await Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Authenticating = false; } ); // TODO: Добавить плавности Frame.Navigate(typeof(MainPage), null, new DrillInNavigationTransitionInfo()); }