using Aitex.Common.Util; using log4net; using log4net.Config; using MECF.Framework.Common.Account.Extends; using OpenSEMI.ClientBase.Handlers; using OpenSEMI.ClientBase.UI; using System.Collections.Generic; using System.IO; using System.Linq; namespace OpenSEMI.ClientBase { public class BaseApp { private static BaseApp _instance = null; public static BaseApp Instance { get { return _instance; } set { _instance = value; } } public UserContext UserContext { get; private set; } public MenuManager MenuManager { get; private set; } public MenuLoader MenuLoader { get; private set; } public UserMode UserMode { get; set; } public UIHandler UIHandler { get; set; } public bool Initialized { get; private set; } public ILog Log { get; private set; } public ILog SysEvent { get; private set; } public StatesHandler StatesManager { get; protected set; } public WaferStatusHandler WaferStatusManager { get; protected set; } public BaseApp() { UserMode = UserMode.None; Initialized = false; Configure(); } public void Initialize(bool force = false) { if (!Initialized || force) { MenuLoader = new MenuLoader(Path.Combine(PathManager.GetCfgDir(), "Menu.xml")); MenuLoader.Load(); MenuManager = new MenuManager(); UserContext = new UserContext(); UIHandler = new UIHandler(); UIHandler.Looper.Run(); OnInitialize(); Initialized = true; } } public virtual void Dispose() { UIHandler.Looper.Terminate(false); } protected void Configure() { OnConfiguration(); XmlConfigurator.Configure(); Log = LogManager.GetLogger("loginfo"); SysEvent = LogManager.GetLogger("sysEvent"); } protected virtual void OnInitialize() { } protected virtual void OnConfiguration() { } public void SetCurrentPage(PageID page) { } public int GetPermission(string menuid) { int result = 1; if (UserContext != null) { string[] source = UserContext.Role.MenuPermission.Split(';'); IEnumerable source2 = from r in source where r.Split(',')[0] == menuid select r; if (source2.Count() > 0) { result = int.Parse(source2.ToArray()[0].Split(',')[1]); } } return result; } } }