using System.Windows.Controls;
using System.Windows.Navigation;
using OpenRiaServices.Client.Authentication;
using OpenRiaServices.Client;
using System.ComponentModel.DataAnnotations;
using ExampleNavigationApplication.Web;
namespace ExampleNavigationApplication
public partial class Home : Page
// Executes when the user navigates to this page.
protected override void OnNavigatedTo(NavigationEventArgs e)
SetControlVisibility(WebContext.Current.User.IsAuthenticated);
private void LoginButton_Click(object sender, RoutedEventArgs e)
LoginParameters lp = new LoginParameters(UserName.Text, Password.Password);
WebContext.Current.Authentication.Login(lp, this.LoginOperation_Completed, null);
LoginButton.IsEnabled = false;
private void LoginOperation_Completed(LoginOperation lo)
LoginResult.Text = lo.Error.Message;
LoginResult.Visibility = System.Windows.Visibility.Visible;
else if (lo.LoginSuccess == false)
LoginResult.Text = "Login failed. Please check user name and password.";
LoginResult.Visibility = System.Windows.Visibility.Visible;
else if (lo.LoginSuccess == true)
SetControlVisibility(true);
LoginButton.IsEnabled = true;
private void SetControlVisibility(bool isAuthenticated)
LoginBorder.Visibility = System.Windows.Visibility.Collapsed;
RegisterBorder.Visibility = System.Windows.Visibility.Collapsed;
WelcomeText.Text = "Welcome " + WebContext.Current.User.Name;
WelcomeText.Visibility = System.Windows.Visibility.Visible;
LogoutButton.Visibility = System.Windows.Visibility.Visible;
LoginBorder.Visibility = System.Windows.Visibility.Visible;
RegisterBorder.Visibility = System.Windows.Visibility.Visible;
WelcomeText.Visibility = System.Windows.Visibility.Collapsed;
LogoutButton.Visibility = System.Windows.Visibility.Collapsed;
private void LogoutButton_Click(object sender, RoutedEventArgs e)
WebContext.Current.Authentication.Logout(this.LogoutOperation_Completed, null);
private void LogoutOperation_Completed(LogoutOperation lo)
SetControlVisibility(false);
ErrorWindow ew = new ErrorWindow("Logout failed.", "Please try logging out again.");
private void RegisterButton_Click(object sender, RoutedEventArgs e)
RegisterButton.IsEnabled = false;
RegistrationDomainContext context = new RegistrationDomainContext();
NewUser nu = new NewUser();
nu.UserName = NewUsername.Text;
nu.Password = NewPassword.Password;
nu.Email = NewEmail.Text;
nu.ConfirmPassword = NewConfirmPassword.Password;
nu.RecordsToShow = int.Parse(DefaultRows.SelectionBoxItem.ToString());
nu.SecurityQuestion = SecurityQuestion.Text;
nu.SecurityAnswer = SecurityAnswer.Text;
context.NewUsers.Add(nu);
context.SubmitChanges(RegisterUser_Completed, null);
catch (ValidationException ve)
registerResult.Visibility = System.Windows.Visibility.Visible;
registerResult.Text = ve.Message;
RegisterButton.IsEnabled = true;
private void RegisterUser_Completed(SubmitOperation so)
ErrorWindow ew = new ErrorWindow("Registration failed.", "Please try registering again.");
LoginParameters lp = new LoginParameters(NewUsername.Text, NewPassword.Password);
WebContext.Current.Authentication.Login(lp, this.LoginOperation_Completed, null);
NewPassword.Password = "";
NewConfirmPassword.Password = "";
DefaultRows.SelectedIndex = 0;
SecurityQuestion.Text = "";
SecurityAnswer.Text = "";
RegisterButton.IsEnabled = true;