/// <summary>
 /// Populates the page with content passed during navigation. Any saved state is also
 /// provided when recreating a page from a prior session.
 /// </summary>
 /// <param name="sender">
 /// The source of the event; typically <see cref="NavigationHelper"/>
 /// </param>
 /// <param name="e">Event data that provides both the navigation parameter passed to
 /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and
 /// a dictionary of state preserved by this page during an earlier
 /// session. The state will be null the first time a page is visited.</param>
 private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
 {
     RegisterExternalPageParameters parameters = (RegisterExternalPageParameters)e.NavigationParameter;
     this.accessTokenSource = parameters.AccessTokenSource;
     this.externalLoginUri = parameters.ExternalLoginUri;
     UserInfo userInfo = parameters.UserInfo;
     string text = SuccessfulExternalLoginTextBlock.Text;
     SuccessfulExternalLoginTextBlock.Text =
         text.Substring(0, text.LastIndexOf(' ') + 1) + userInfo.LoginProvider + '.';
     this.UsernameTextBox.Text = userInfo.UserName;
 }
 /// <summary>
 /// Populates the page with content passed during navigation. Any saved state is also
 /// provided when recreating a page from a prior session.
 /// </summary>
 /// <param name="sender">
 /// The source of the event; typically <see cref="NavigationHelper"/>
 /// </param>
 /// <param name="e">Event data that provides both the navigation parameter passed to
 /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and
 /// a dictionary of state preserved by this page during an earlier
 /// session. The state will be null the first time a page is visited.</param>
 private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
 {
     this.accessTokenSource = (TaskCompletionSource<string>)e.NavigationParameter;
 }