public static Uri GetNavigationUri(Account account)
 {
     HttpValueCollection httpValues = new HttpValueCollection();
     httpValues.Add(AccountName, account.Provider);
     httpValues.Add(Username, account.ProviderKey);
     return new Uri("/AccountDetailsPage.xaml?" + httpValues.ToString(), UriKind.Relative);
 }
        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);
            }
        }
        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();
            }
        }