protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            ExternalLoginsItemsControl.Items.Clear();

            HttpResult <ExternalLogin[]> result;

            using (AccountClient accountClient = ClientFactory.CreateAccountClient())
            {
                result = await accountClient.GetExternalLoginsAsync();
            }

            if (result.Succeeded)
            {
                ExternalLogin[] externalLogins = result.Content;
                ExternalLoginsPivotItem.Visibility = externalLogins.Length > 0 ? Visibility.Visible : Visibility.Collapsed;
                foreach (ExternalLogin externalLogin in externalLogins)
                {
                    string  provider = externalLogin.Name;
                    Account account  = new Account()
                    {
                        Provider    = provider,
                        ProviderUri = externalLogin.Url,
                        Icon        = Account.GetAccountIcon(provider)
                    };
                    ExternalLoginsItemsControl.Items.Add(account);
                }
            }
            else
            {
                ExternalLoginsPivotItem.Visibility = Visibility.Collapsed;
                ErrorDialog.ShowErrors(result.Errors);
            }
        }
示例#2
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            AccountsItemControl.Items.Clear();

            HttpResult <ManageInfo> result;

            using (AccountClient accountClient = ClientFactory.CreateAccountClient())
            {
                result = await accountClient.GetManageInfoAsync();
            }

            if (result.Succeeded)
            {
                ManageInfo manageInfo = result.Content;
                localProvider = manageInfo.LocalLoginProvider;
                foreach (UserLoginInfo userLoginInfo in manageInfo.Logins)
                {
                    Account account = new Account();
                    account.Provider    = userLoginInfo.LoginProvider;
                    account.ProviderKey = userLoginInfo.ProviderKey;
                    account.Icon        = Account.GetAccountIcon(userLoginInfo.LoginProvider);
                    AccountsItemControl.Items.Add(account);
                }
            }
            else
            {
                ErrorDialog.ShowErrors(result.Errors);
            }
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            this.AddAccountItemControl.Items.Clear();

            HttpResult <ManageInfo> result;

            using (AccountClient accountClient = ClientFactory.CreateAccountClient())
            {
                result = await accountClient.GetManageInfoAsync();
            }

            if (result.Succeeded)
            {
                ManageInfo manageInfo = result.Content;
                foreach (ExternalLogin externalLogin in manageInfo.ExternalLoginProviders)
                {
                    string  provider = externalLogin.Name;
                    Account account  = new Account()
                    {
                        Provider    = externalLogin.Name,
                        Icon        = Account.GetAccountIcon(provider),
                        ProviderUri = externalLogin.Url
                    };
                    AddAccountItemControl.Items.Add(account);
                }

                localProvider = manageInfo.LocalLoginProvider;
                UserLoginInfo localLogin    = manageInfo.Logins.FirstOrDefault(login => login.LoginProvider == localProvider);
                bool          hasLocalLogin = localLogin != null;
                if (!hasLocalLogin)
                {
                    Account localAccount = new Account()
                    {
                        Provider = localProvider,
                        Icon     = Account.GetAccountIcon(localProvider)
                    };
                    AddAccountItemControl.Items.Add(localAccount);
                }
            }
            else
            {
                ErrorDialog.ShowErrors(result.Errors);
                this.NavigationService.GoBack();
            }
        }