93 lines
2.4 KiB
C#
93 lines
2.4 KiB
C#
using System.IO;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using Caliburn.Micro;
|
|
using MECF.Framework.Common.Account.Extends;
|
|
|
|
namespace MECF.Framework.UI.Client.ClientBase
|
|
{
|
|
public class BaseApp
|
|
{
|
|
public UserContext UserContext { get; private set; }
|
|
|
|
public MenuManager MenuManager { get; private set; }
|
|
|
|
public UserMode UserMode { get; set; }
|
|
|
|
public bool Initialized { get; private set; }
|
|
|
|
public ModuleDataMonitor _dataMonitor;
|
|
|
|
private static BaseApp _instance = null;
|
|
|
|
public static BaseApp Instance
|
|
{
|
|
get => _instance;
|
|
set => _instance = value;
|
|
}
|
|
|
|
public BaseApp()
|
|
{
|
|
UserMode = UserMode.None;
|
|
Initialized = false;
|
|
|
|
Configure();
|
|
}
|
|
|
|
public void Initialize(bool force = false)
|
|
{
|
|
if (Initialized && !force)
|
|
return;
|
|
|
|
MenuManager = new MenuManager();
|
|
UserContext = new UserContext();
|
|
|
|
var file = $"{System.AppDomain.CurrentDomain.BaseDirectory}MECF.Framework.UI.Client.dll";
|
|
if (File.Exists(file))
|
|
{
|
|
var assembly = Assembly.LoadFile(file);
|
|
AssemblySource.Instance.Add(assembly);
|
|
}
|
|
|
|
OnInitialize();
|
|
|
|
//must be called after specific project initialized
|
|
_dataMonitor = new ModuleDataMonitor();
|
|
Initialized = true;
|
|
}
|
|
|
|
public virtual void Dispose()
|
|
{
|
|
|
|
}
|
|
|
|
protected void Configure()
|
|
{
|
|
//config skin/language...
|
|
OnConfiguration();
|
|
|
|
}
|
|
|
|
protected virtual void OnInitialize() { }
|
|
protected virtual void OnConfiguration() { }
|
|
public virtual void SwitchPage(string mainMenu, string subMenu, object parameter) { }
|
|
|
|
public int GetPermission(string menuid)
|
|
{
|
|
var per = 1;
|
|
if (UserContext != null)
|
|
{
|
|
var list = UserContext.Role.PermissionContent.Split(';');
|
|
var result = from r in list
|
|
where r.Split(',')[0] == menuid
|
|
select r;
|
|
if (result.Count() > 0)
|
|
per = int.Parse(result.ToArray()[0].Split(',')[1]);
|
|
}
|
|
return per;
|
|
}
|
|
|
|
|
|
}
|
|
}
|