Guest User

Untitled

a guest
Nov 17th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. using System.ComponentModel;
  2. using System.Windows.Input;
  3. using LoginViewSample.Core.Services;
  4. using Xamarin.Forms;
  5.  
  6. namespace LoginViewSample.Core.ViewModels
  7. {
  8. public class LoginViewModel : INotifyPropertyChanged
  9. {
  10. private string _username;
  11. private string _password;
  12. private bool _areCredentialsInvalid;
  13.  
  14. public LoginViewModel(INavigationService navigationService)
  15. {
  16. AuthenticateCommand = new Command(() =>
  17. {
  18. AreCredentialsInvalid = !UserAuthenticated(Username, Password);
  19. if (AreCredentialsInvalid) return;
  20.  
  21. navigationService.GoBack();
  22. });
  23.  
  24. AreCredentialsInvalid = false;
  25. }
  26.  
  27. private bool UserAuthenticated(string username, string password)
  28. {
  29. if (string.IsNullOrEmpty(username)
  30. || string.IsNullOrEmpty(password))
  31. {
  32. return false;
  33. }
  34.  
  35. return username.ToLowerInvariant() == "joe"
  36. && password.ToLowerInvariant() == "secret";
  37. }
  38.  
  39. public string Username
  40. {
  41. get => _username;
  42. set
  43. {
  44. if (value == _username) return;
  45. _username = value;
  46. OnPropertyChanged(nameof(Username));
  47. }
  48. }
  49.  
  50. public string Password
  51. {
  52. get => _password;
  53. set
  54. {
  55. if (value == _password) return;
  56. _password = value;
  57. OnPropertyChanged(nameof(Password));
  58. }
  59. }
  60.  
  61. public ICommand AuthenticateCommand { get; set; }
  62.  
  63. public bool AreCredentialsInvalid
  64. {
  65. get => _areCredentialsInvalid;
  66. set
  67. {
  68. if(value == _areCredentialsInvalid) return;
  69. _areCredentialsInvalid = value;
  70. OnPropertyChanged(nameof(AreCredentialsInvalid));
  71. }
  72. }
  73.  
  74. public event PropertyChangedEventHandler PropertyChanged;
  75.  
  76. protected virtual void OnPropertyChanged(string propertyName = null)
  77. {
  78. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  79. }
  80. }
  81. }
Add Comment
Please, Sign In to add comment