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