private async void SignUpButton_Click(object sender, RoutedEventArgs e)
        {
            ClearErrors();

            RegisterExternalUser registerExternalUser = new RegisterExternalUser()
            {
                UserName = this.UsernameTextBox.Text,
            };

            HttpResult result;
            using (AccountClient accountClient = ClientFactory.CreateAccountClient())
            {
                result = await accountClient.RegisterExternalAsync(registerExternalUser);
            }

            if (result.Succeeded)
            {
                // Need to login again now that we are registered - should happen with the existing cookie
                ExternalLoginResult externalLoginResult = await ExternalLoginManager.GetExternalAccessTokenAsync(externalLoginUri);
                bool completed = AccessTokenProvider.AccessTokenSource.TrySetResult(externalLoginResult.AccessToken);
                this.NavigationService.Navigate(new Uri("/TodoPage.xaml", UriKind.Relative));
            }
            else
            {
                DisplayErrors(result.Errors);
            }
        }
 public async Task<HttpResult<RegisterExternalResponse>> RegisterExternalAsync(RegisterExternalUser externalUser)
 {
     ThrowIfDisposed();
     HttpResult<RegisterExternalResponse> result = await HttpClient.PostAsJsonAsync<RegisterExternalUser, RegisterExternalResponse>(RegisterExternalUri, externalUser);
     AddAllErrors(result, result.Content);
     return result;
 }
        public async Task RegisterExternalUserAlreadyExists()
        {
            oAuthHandler.TokenStore.AccessToken = externalToken;
            RegisterExternalUser externalUser = new RegisterExternalUser() { UserName = invalidUserName };

            HttpResult<RegisterExternalResponse> result = await client.RegisterExternalAsync(externalUser);

            RegisterExternalResponse response = result.Content;
            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Message);
            Assert.IsNotNull(response.ErrorMessages);
            Assert.IsTrue(response.ErrorMessages.Length > 0);
        }
        public async Task RegisterExternal()
        {
            oAuthHandler.TokenStore.AccessToken = externalToken;
            RegisterExternalUser externalUser = new RegisterExternalUser() { UserName = userName };

            HttpResult result = await client.RegisterExternalAsync(externalUser);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Succeeded);
        }
        public async Task <HttpResult <RegisterExternalResponse> > RegisterExternalAsync(RegisterExternalUser externalUser)
        {
            ThrowIfDisposed();
            HttpResult <RegisterExternalResponse> result = await HttpClient.PostAsJsonAsync <RegisterExternalUser, RegisterExternalResponse>(RegisterExternalUri, externalUser);

            AddAllErrors(result, result.Content);
            return(result);
        }
        private async void SignUpButton_Click(object sender, RoutedEventArgs e)
        {
            ClearErrors();

            RegisterExternalUser registerExternalUser = new RegisterExternalUser()
            {
                UserName = this.UsernameTextBox.Text,
            };

            HttpResult result;
            using (AccountClient accountClient = ClientFactory.CreateAccountClient())
            {
                result = await accountClient.RegisterExternalAsync(registerExternalUser);
            }
            if (result.Succeeded)
            {
                // Need to login again now that we are registered - should happen with the existing cookie
                ExternalLoginResult externalLoginResult = await ExternalLoginManager.GetExternalAccessTokenAsync(externalLoginUri, silentMode: true);
                if (externalLoginResult.AccessToken != null)
                {
                    bool completed = accessTokenSource.TrySetResult(externalLoginResult.AccessToken);
                    this.Frame.Navigate(typeof(TodoPage));
                }
                else
                {
                    await ErrorDialog.ShowErrorAsync("Failed to register external account");
                }
            }
            else
            {
                DisplayErrors(result.Errors);
            }
        }