Advertisement
jkmaster9918

LoginRegister ViewModel

Jul 2nd, 2011
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.00 KB | None | 0 0
  1. namespace SpaceTakeover
  2. {
  3.     public class LoginData : ModelBase
  4.     {
  5.  
  6.         public override string this[string columnName]
  7.         {
  8.             get { return null; }
  9.         }
  10.         private string username = String.Empty;
  11.  
  12.         public string Username
  13.         {
  14.             get { return username; }
  15.             set { username = value; NotifyOnPropertyChanged("Username"); }
  16.         }
  17.  
  18.         private string password = String.Empty;
  19.  
  20.         public string Password
  21.         {
  22.             get { return password; }
  23.             set { password = value; NotifyOnPropertyChanged("Password"); }
  24.         }
  25.     }
  26.     public class RegistrationData : ModelBase
  27.     {
  28.  
  29.         public override string this[string columnName]
  30.         {
  31.             get
  32.             {
  33.                 string errorString = null;
  34.                 if (columnName == "Username")
  35.                 {
  36.                     if (String.IsNullOrEmpty(Username) || Username.Length < 3)
  37.                     {
  38.                         errorString = "Username must be at least 3 characters.";
  39.                     }
  40.                 }
  41.                 if (columnName == "ReEnterPassword")
  42.                 {
  43.                     if (ReEnterPassword != Password)
  44.                     {
  45.                         errorString = "Passwords do not match.";
  46.                     }
  47.                 }
  48.                 if (columnName == "Email")
  49.                 {
  50.                     if (!System.Text.RegularExpressions.Regex.IsMatch(Email, @"(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})"))//If email is syntatically valid
  51.                     {
  52.                         errorString = "Email is in an invalid format.";
  53.                     }
  54.                 }
  55.                 return errorString;
  56.             }
  57.         }
  58.  
  59.         private string username = String.Empty;
  60.  
  61.         public string Username
  62.         {
  63.             get { return username; }
  64.             set { username = value; NotifyOnPropertyChanged("Username"); }
  65.         }
  66.  
  67.         private string password = String.Empty;
  68.  
  69.         public string Password
  70.         {
  71.             get { return password; }
  72.             set { password = value; NotifyOnPropertyChanged("Password"); }
  73.         }
  74.  
  75.         private string rePassword = String.Empty;
  76.  
  77.         public string ReEnterPassword
  78.         {
  79.             get { return rePassword; }
  80.             set { rePassword = value; NotifyOnPropertyChanged("ReEnterPassword"); }
  81.         }
  82.  
  83.         private string betaKey = String.Empty;
  84.  
  85.         public string BetaKey
  86.         {
  87.             get { return betaKey; }
  88.             set { betaKey = value; NotifyOnPropertyChanged("BetaKey"); }
  89.         }
  90.  
  91.         private string email = String.Empty;
  92.  
  93.         public string Email
  94.         {
  95.             get { return email; }
  96.             set { email = value; NotifyOnPropertyChanged("Email"); }
  97.         }
  98.  
  99.         private bool registerEnabled = true;
  100.  
  101.         public bool RegisterEnabled
  102.         {
  103.             get { return registerEnabled; }
  104.             set { registerEnabled = value; NotifyOnPropertyChanged("RegisterEnabled"); }
  105.         }
  106.     }
  107.     public class LoginCommand : CommandBase
  108.     {
  109.         private LoginRegisterClient client;
  110.  
  111.         public LoginCommand()
  112.         {
  113.             client = new LoginRegisterClient();
  114.             Text = "Login";
  115.         }
  116.  
  117.         public LoginCommand(LoginRegisterClient remoteClient)
  118.         {
  119.             client = remoteClient;
  120.         }
  121.  
  122.         public override bool CanExecute(object parameter)
  123.         {
  124.             return parameter is TextBlock;
  125.         }
  126.  
  127.         public override void Execute(object parameter)
  128.         {
  129.             TextBlock errorBlock = parameter as TextBlock;
  130.             client.LoginCompleted += GenerateLoginCompletedDelegate(errorBlock);
  131.         }
  132.         private EventHandler<LoginCompletedEventArgs> GenerateLoginCompletedDelegate(TextBlock errorBlock)
  133.         {
  134.             return (object sender, LoginCompletedEventArgs e) =>
  135.                 {
  136.                     bool loginSuccess = e.Result;
  137.                     if (!loginSuccess)
  138.                     {
  139.                         errorBlock.Text = "Login Failed.";
  140.                     }
  141.                     else
  142.                     {
  143.                         FrameworkElement ctrl = errorBlock;
  144.                         while (!((ctrl = ctrl.Parent as FrameworkElement) is PageSwitcher))
  145.                         {
  146.                             if (ctrl != null)
  147.                             {
  148.                                 PageSwitcher ps = ctrl as PageSwitcher;
  149.                                 ps.Navigate(new SelectUniversePage());
  150.                             }
  151.                         }
  152.                     }
  153.                 };
  154.         }
  155.     }
  156.     public class RegisterCommand : CommandBase
  157.     {
  158.         private LoginRegisterClient client;
  159.  
  160.         public RegisterCommand()
  161.         {
  162.             client = new LoginRegisterClient();
  163.             Text = "Register";
  164.         }
  165.  
  166.         public RegisterCommand(LoginRegisterClient remoteClient)
  167.         {
  168.             client = remoteClient;
  169.         }
  170.  
  171.         public override bool CanExecute(object parameter)
  172.         {
  173.             return parameter is TextBlock;
  174.         }
  175.  
  176.         public override void Execute(object parameter)
  177.         {
  178.             TextBlock errorBlock = parameter as TextBlock;
  179.             client.RegisterCompleted += GenerateRegistrationCompletedDelegate(errorBlock);
  180.         }
  181.         private EventHandler<RegisterCompletedEventArgs> GenerateRegistrationCompletedDelegate(TextBlock errorBlock)
  182.         {
  183.             return (object sender, RegisterCompletedEventArgs e) =>
  184.                 {
  185.                     bool loginSuccess = e.Result;
  186.                     if (!loginSuccess)
  187.                     {
  188.                         errorBlock.Text = "Registration Failed.";
  189.                     }
  190.                     else
  191.                     {
  192.                         FrameworkElement ctrl = errorBlock;
  193.                         while (!((ctrl = ctrl.Parent as FrameworkElement) is PageSwitcher))
  194.                         {
  195.                             if (ctrl != null)
  196.                             {
  197.                                 PageSwitcher ps = ctrl as PageSwitcher;
  198.                                 ps.Navigate(new SelectUniversePage());
  199.                             }
  200.                         }
  201.                     }
  202.                 };
  203.         }
  204.     }
  205.     public class ViewModelLoginRegister
  206.     {
  207.         private LoginRegisterClient client = new LoginRegisterClient();
  208.         public LoginCommand LoginCmd { get; set; }
  209.         public LoginData LoginInfo { get; set; }
  210.         public RegistrationData RegistrationInfo { get; set; }
  211.         public RegisterCommand RegisterCmd { get; set; }
  212.         public ViewModelLoginRegister()
  213.         {
  214.             LoginInfo = new LoginData();
  215.             RegistrationInfo = new RegistrationData();
  216.             LoginCmd = new LoginCommand(client);
  217.             RegisterCmd = new RegisterCommand(client);
  218.         }
  219.     }
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement