Menus.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. using Newtonsoft.Json.Converters;
  2. using Newtonsoft.Json;
  3. using System.Collections.ObjectModel;
  4. using System.ComponentModel;
  5. using System.Runtime.Serialization;
  6. namespace Venus_MainPages.Roles
  7. {
  8. [DataContract]
  9. public class Menu : INotifyPropertyChanged
  10. {
  11. public Menu(string firstmenu, string secondmenu)
  12. {
  13. FirstMenu = firstmenu;
  14. SecondMenu = secondmenu;
  15. }
  16. private string m_firstMenu;
  17. [DataMember]
  18. public string FirstMenu
  19. {
  20. get { return m_firstMenu; }
  21. set
  22. {
  23. m_firstMenu = value;
  24. OnPropertyChanged("FirstMenu");
  25. }
  26. }
  27. private string m_SecondMenu;
  28. [DataMember]
  29. public string SecondMenu
  30. {
  31. get { return m_SecondMenu; }
  32. set
  33. {
  34. m_SecondMenu = value;
  35. OnPropertyChanged("SecondMenu");
  36. }
  37. }
  38. private MenuPermission m_Permission;
  39. [DataMember]
  40. [JsonConverter(typeof(StringEnumConverter))]
  41. public MenuPermission Permission
  42. {
  43. get { return m_Permission; }
  44. set
  45. {
  46. m_Permission = value;
  47. OnPropertyChanged("Permission");
  48. }
  49. }
  50. private string m_View;
  51. [DataMember]
  52. public string View
  53. {
  54. get { return m_View; }
  55. set
  56. {
  57. m_View = value;
  58. OnPropertyChanged("View");
  59. }
  60. }
  61. #region INotifyPropertyChanged
  62. public event PropertyChangedEventHandler PropertyChanged;
  63. private void OnPropertyChanged(string propertyName)
  64. {
  65. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  66. }
  67. #endregion INotifyPropertyChanged
  68. }
  69. public enum MenuPermission
  70. {
  71. None,
  72. ReadOnly,
  73. ReadWrite
  74. }
  75. public enum Role
  76. {
  77. Manager,
  78. Engineer,
  79. Technician,
  80. Operator
  81. }
  82. [DataContract]
  83. public class RoleDefine : INotifyPropertyChanged
  84. {
  85. private string m_RoleName;
  86. [DataMember]
  87. public string RoleName
  88. {
  89. get { return m_RoleName; }
  90. set
  91. {
  92. m_RoleName = value;
  93. OnPropertyChanged("RoleName");
  94. }
  95. }
  96. [DataMember]
  97. private bool m_IsLocked;
  98. public bool IsLocked
  99. {
  100. get { return m_IsLocked; }
  101. set
  102. {
  103. m_IsLocked = value;
  104. OnPropertyChanged("IsLocked");
  105. }
  106. }
  107. [DataMember]
  108. private int m_LockTime;
  109. public int LockTime
  110. {
  111. get { return m_LockTime; }
  112. set
  113. {
  114. m_LockTime = value;
  115. OnPropertyChanged("LockTime");
  116. }
  117. }
  118. [DataMember]
  119. public ObservableCollection<Menu> Menus { get; set; }
  120. public RoleDefine(string roleName, ObservableCollection<Menu> menus)
  121. {
  122. RoleName = roleName;
  123. Menus = menus;
  124. }
  125. #region INotifyPropertyChanged
  126. public event PropertyChangedEventHandler PropertyChanged;
  127. private void OnPropertyChanged(string propertyName)
  128. {
  129. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  130. }
  131. #endregion INotifyPropertyChanged
  132. }
  133. [DataContract]
  134. public class User : INotifyPropertyChanged
  135. {
  136. public User(string name, string password, Role role)
  137. {
  138. Name = name;
  139. Password = password;
  140. Role = role;
  141. }
  142. private string m_Name;
  143. [DataMember]
  144. public string Name
  145. {
  146. get { return m_Name; }
  147. set
  148. {
  149. m_Name = value;
  150. OnPropertyChanged("Name");
  151. }
  152. }
  153. public string m_Password;
  154. [DataMember]
  155. public string Password
  156. {
  157. get { return m_Password; }
  158. set
  159. {
  160. m_Password = value;
  161. OnPropertyChanged("Password");
  162. }
  163. }
  164. public Role m_Role;
  165. [DataMember]
  166. [JsonConverter(typeof(StringEnumConverter))]
  167. public Role Role
  168. {
  169. get { return m_Role; }
  170. set
  171. {
  172. m_Role = value;
  173. OnPropertyChanged("Role");
  174. }
  175. }
  176. #region INotifyPropertyChanged
  177. public event PropertyChangedEventHandler PropertyChanged;
  178. private void OnPropertyChanged(string propertyName)
  179. {
  180. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  181. }
  182. #endregion INotifyPropertyChanged
  183. }
  184. }