BaseModel.cs 1.7 KB

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