User.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace MyWpfApp.models
  7. {
  8. /// <summary>
  9. /// источник данных для страницы UserInfo
  10. /// </summary>
  11. public class User
  12. {
  13. //создаем объекты тех таблиц БД, с которыми необходмо работать (брать или добавлять данные)
  14. UserTable userTable;
  15. LoginedTable loginedTable;
  16. /// <summary>
  17. /// конструктор, который принимает аргумент. используется, если мы редактируем существующего пользователя
  18. /// </summary>
  19. /// <param name="loginedTable">Инфо о текущем пользователе</param>
  20. public User(LoginedTable loginedTable)
  21. {
  22. this.loginedTable = loginedTable;
  23. userTable = Globals.MyGlobalConnection.UserTable.FirstOrDefault(x => x.ID == loginedTable.ID);
  24. }
  25. /// <summary>
  26. /// конструктор без аргументов. Используется, если мы создаем нового пользователя
  27. /// </summary>
  28. public User()
  29. {
  30. loginedTable = new LoginedTable();
  31. userTable = new UserTable();
  32. }
  33. /// <summary>
  34. /// свойство для пароля. переводит его строковое значение в хеш-код
  35. /// </summary>
  36. public string Password { set=> loginedTable.Password=value.GetHashCode(); }
  37. /// <summary>
  38. /// в get реализуется связь 1 к 1.
  39. /// </summary>
  40. public UserTable UserTable { get { userTable.ID = loginedTable.ID; return userTable; } set => userTable = value; }
  41. public LoginedTable LoginedTable { get => loginedTable; set => loginedTable = value; }
  42. }
  43. }