using Caliburn.Micro.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OpenSEMI.ClientBase { public class BaseModel : Screen { public BaseModel() { PageStateList = new List(); } public PageID Page { get; set; } public List PageStateList { get; set; } private int permission = 0; private int token = 0; public bool PageEnabled { get; set; } = true; public int Permission { get { return this.permission; } set { if (this.permission != value) { this.permission = value; this.NotifyOfPropertyChange("Permission"); } } } public bool HasToken { get { return this.token > 0 ? true : false; } } public int Token { get { return this.token; } set { if (this.token != value) { this.token = value; OnTokenChanged(this.token); this.NotifyOfPropertyChange("Token"); } } } protected virtual void OnTokenChanged(int nNewToken) { } protected override void OnActivate() { base.OnActivate(); PageEnabled = Permission == 3; BaseApp.Instance.StatesManager.Register(PageStateList); } protected override void OnDeactivate(bool close) { base.OnDeactivate(close); BaseApp.Instance.StatesManager.UnRegister(PageStateList); } } }