コード例 #1
0
        private void RequestAccessTokenCompleted(RestRequest request, RestResponse response, object userstate)
        {
            isCanceled = false;

            string accessToken       = GetQueryParameter(response.Content, "oauth_token");
            string accessTokenSecret = GetQueryParameter(response.Content, "oauth_token_secret");
            string userId            = GetQueryParameter(response.Content, "user_id");
            string screenName        = GetQueryParameter(response.Content, "screen_name");

            if (!string.IsNullOrEmpty(accessToken) && !string.IsNullOrEmpty(accessTokenSecret))
            {
                TwitterAccess twitterAccess = new TwitterAccess(accessToken, accessTokenSecret, userId, screenName);

                TwitterAccessMessage.Send(twitterAccess, DrumbleApp.Shared.Messages.Enums.TwitterAccessMessageReason.Authorised);
            }
            else
            {
                TwitterAccessMessage.Send(null, DrumbleApp.Shared.Messages.Enums.TwitterAccessMessageReason.FailedAuthorisation);
            }

            Dispatcher.BeginInvoke(() =>
            {
                if (NavigationService.CanGoBack)
                {
                    NavigationService.GoBack();
                }
            });
        }
コード例 #2
0
        private void SetTwitterDetails(TwitterAccessMessage twitterAccessMessage)
        {
            switch (twitterAccessMessage.Reason)
            {
                case Messages.Enums.TwitterAccessMessageReason.Authorised:
                    Action registerUserTwitter = async () =>
                    {
                        user = UnitOfWork.UserRepository.GetUser();

                        user.TwitterInfo = new TwitterInfo(twitterAccessMessage.TwitterAccess.AccessToken, twitterAccessMessage.TwitterAccess.AccessTokenSecret, twitterAccessMessage.TwitterAccess.UserId);

                        cancellationTokenSource = new CancellationTokenSource();

                        user = await DrumbleApi.RegisterTwitter(cancellationTokenSource.Token, user);

                        UnitOfWork.UserRepository.Update(user);
                        UnitOfWork.Save();

                        base.HideHeaderLoader();
                        EmailTextBoxIsEnabled = true;

                        NavigationService.NavigateTo("/Views/Profile.xaml");
                    };

                    DispatcherHelper.CheckBeginInvokeOnUI(registerUserTwitter);

                    break;
                case Messages.Enums.TwitterAccessMessageReason.FailedAuthorisation:
                case Messages.Enums.TwitterAccessMessageReason.CanceledAuthorisation:
                    base.HideHeaderLoader();
                    EmailTextBoxIsEnabled = true;
                    break;
            }
        }
コード例 #3
0
        private void SetTwitterDetails(TwitterAccessMessage twitterAccessMessage)
        {
            switch (twitterAccessMessage.Reason)
            {
            case Messages.Enums.TwitterAccessMessageReason.Authorised:
                Action registerUserTwitter = async() =>
                {
                    user = UnitOfWork.UserRepository.GetUser();

                    user.TwitterInfo = new TwitterInfo(twitterAccessMessage.TwitterAccess.AccessToken, twitterAccessMessage.TwitterAccess.AccessTokenSecret, twitterAccessMessage.TwitterAccess.UserId);

                    cancellationTokenSource = new CancellationTokenSource();

                    user = await DrumbleApi.RegisterTwitter(cancellationTokenSource.Token, user);

                    UnitOfWork.UserRepository.Update(user);
                    UnitOfWork.Save();

                    base.HideHeaderLoader();
                    EmailTextBoxIsEnabled = true;

                    NavigationService.NavigateTo("/Views/Profile.xaml");
                };

                DispatcherHelper.CheckBeginInvokeOnUI(registerUserTwitter);

                break;

            case Messages.Enums.TwitterAccessMessageReason.FailedAuthorisation:
            case Messages.Enums.TwitterAccessMessageReason.CanceledAuthorisation:
                base.HideHeaderLoader();
                EmailTextBoxIsEnabled = true;
                break;
            }
        }
コード例 #4
0
        protected override void OnNavigatedFrom(NavigationEventArgs e)
        {
            base.OnNavigatedFrom(e);

            if (isCanceled)
            {
                TwitterAccessMessage.Send(null, DrumbleApp.Shared.Messages.Enums.TwitterAccessMessageReason.CanceledAuthorisation);
            }
        }
コード例 #5
0
        private void SetTwitterDetails(TwitterAccessMessage twitterAccessMessage)
        {
            switch (twitterAccessMessage.Reason)
            {
            case Messages.Enums.TwitterAccessMessageReason.Authorised:
                Action registerUserTwitter = async() =>
                {
                    if (user == null)
                    {
                        user = new User();
                    }

                    user.TwitterInfo = new TwitterInfo(twitterAccessMessage.TwitterAccess.AccessToken, twitterAccessMessage.TwitterAccess.AccessTokenSecret, twitterAccessMessage.TwitterAccess.UserId);

                    cancellationTokenSource = new CancellationTokenSource();

                    user = await DrumbleApi.LoginTwitter(cancellationTokenSource.Token, user);

                    if (isInAppLogin)
                    {
                        UnitOfWork.UserRepository.Update(user);
                    }
                    else
                    {
                        UnitOfWork.UserRepository.Insert(user);
                    }
                    UnitOfWork.Save();

                    base.HideHeaderLoader();
                    EmailTextBoxIsEnabled = true;

                    if (isInAppLogin)
                    {
                        NavigationService.NavigateTo("/Views/Profile.xaml");
                    }
                    else
                    {
                        NavigationService.NavigateTo("/Views/SplashScreen.xaml?pagestate=twitterlogin");
                    }
                };

                DispatcherHelper.CheckBeginInvokeOnUI(registerUserTwitter);

                break;

            case Messages.Enums.TwitterAccessMessageReason.FailedAuthorisation:
            case Messages.Enums.TwitterAccessMessageReason.CanceledAuthorisation:
                base.HideHeaderLoader();
                EmailTextBoxIsEnabled = true;
                break;
            }
        }