Esempio n. 1
0
        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());
        }