BaseModel.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using Caliburn.Micro.Core;
  2. using System.Collections.Generic;
  3. namespace OpenSEMI.ClientBase
  4. {
  5. public class BaseModel : Screen
  6. {
  7. private int permission = 0;
  8. private int token = 0;
  9. public PageID Page
  10. {
  11. get;
  12. set;
  13. }
  14. public List<string> PageStateList
  15. {
  16. get;
  17. set;
  18. }
  19. public int Permission
  20. {
  21. get
  22. {
  23. return permission;
  24. }
  25. set
  26. {
  27. if (permission != value)
  28. {
  29. permission = value;
  30. NotifyOfPropertyChange("Permission");
  31. }
  32. }
  33. }
  34. public bool HasToken => token > 0 && true;
  35. public int Token
  36. {
  37. get
  38. {
  39. return token;
  40. }
  41. set
  42. {
  43. if (token != value)
  44. {
  45. token = value;
  46. OnTokenChanged(token);
  47. NotifyOfPropertyChange("Token");
  48. }
  49. }
  50. }
  51. public BaseModel()
  52. {
  53. PageStateList = new List<string>();
  54. }
  55. protected virtual void OnTokenChanged(int nNewToken)
  56. {
  57. }
  58. protected override void OnActivate()
  59. {
  60. base.OnActivate();
  61. BaseApp.Instance.StatesManager.Register(PageStateList, false);
  62. }
  63. protected override void OnDeactivate(bool close)
  64. {
  65. base.OnDeactivate(close);
  66. BaseApp.Instance.StatesManager.UnRegister(PageStateList);
  67. }
  68. }
  69. }