ListUsersViewModel.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using RKISPATTERN.Command;
  2. using RKISPATTERN.Helpers;
  3. using RKISPATTERN.View;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Collections.ObjectModel;
  7. using System.ComponentModel;
  8. using System.Linq;
  9. using System.Runtime.CompilerServices;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace RKISPATTERN.ViewModels
  13. {
  14. class UserInfo
  15. {
  16. public int ID { get; set; }
  17. public string FirstName { get; set; }
  18. public string MiddleName { get; set; }
  19. public string LastName { get; set; }
  20. public string Login { get; set; }
  21. public string Phone { get; set; }
  22. public UserInfo(int iD, string firstName, string middleName, string lastName, string login, string phone)
  23. {
  24. ID = iD;
  25. FirstName = firstName;
  26. MiddleName = middleName;
  27. LastName = lastName;
  28. Login = login;
  29. Phone = phone;
  30. }
  31. }
  32. class ListUsersViewModel : INotifyPropertyChanged
  33. {
  34. public event PropertyChangedEventHandler? PropertyChanged;
  35. public void OnPropertyChanged([CallerMemberName] string prop = "")
  36. {
  37. if (PropertyChanged != null)
  38. PropertyChanged(this, new PropertyChangedEventArgs(prop));
  39. }
  40. private RelayCommand backToMenu;
  41. public RelayCommand BackToMenu
  42. {
  43. get
  44. {
  45. return backToMenu ??
  46. (backToMenu = new RelayCommand(obj =>
  47. {
  48. MainMenu mainMenu = new MainMenu();
  49. mainMenu.Show();
  50. Helper.CloseWindow<ListUsers>();
  51. }));
  52. }
  53. }
  54. private ObservableCollection<UserInfo> _users;
  55. public ObservableCollection<UserInfo> Users
  56. {
  57. get => _users;
  58. set
  59. {
  60. _users = value;
  61. OnPropertyChanged();
  62. }
  63. }
  64. public ListUsersViewModel()
  65. {
  66. using (DBContext dbContext = new DBContext())
  67. {
  68. List<UserInfo> userInfos = new List<UserInfo>();
  69. foreach (var el in dbContext.User)
  70. {
  71. userInfos.Add(new UserInfo(el.Id, el.FirstName, el.MiddleName, el.LastName,el.Login, el.Phone));
  72. }
  73. _users = new ObservableCollection<UserInfo>(userInfos);
  74. }
  75. }
  76. }
  77. }