|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.IO;
|
|
|
using System.Linq;
|
|
|
using System.Reflection;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
namespace BO.Utils
|
|
|
{
|
|
|
public interface IAfterLogin
|
|
|
{
|
|
|
string RoleName { get; }
|
|
|
|
|
|
Form Generate();
|
|
|
}
|
|
|
|
|
|
public static class AfterLoginUtil
|
|
|
{
|
|
|
|
|
|
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>()
|
|
|
{
|
|
|
new Tuple<string,string>("排宰员",@"C:\B3\src\B3ButcherManageClient\ButcherOrder\bin\Debug\ButcherOrder"),
|
|
|
new Tuple<string,string>("过磅员",@"C:\B3\src\B3ButcherManageClient\ButcherWeight\bin\Debug\ButcherWeight"),
|
|
|
new Tuple<string,string>("验质员",@"C:\B3\src\B3ButcherManageClient\QualityAndOrder\bin\Debug\QualityAndOrder"),
|
|
|
//new Tuple<string,string>("定级员",@"C:\B3\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
|
|
|
new Tuple<string,string>("窒晕员",@"C:\B3\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
|
|
|
new Tuple<string,string>("定级员",@"C:\B3\src\B3ButcherManageClient\CarcassStateWeight\bin\Debug\CarcassStateWeight")
|
|
|
};
|
|
|
|
|
|
//static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>(){new Tuple<string,string>("排宰员",@"ButcherOrder"),
|
|
|
//new Tuple<string,string>("过磅员",@"ButcherWeight"),
|
|
|
// new Tuple<string,string>("验质员",@"QualityAndOrder"),new Tuple<string,string>("定级员",@"WeighAndGrading"),new Tuple<string,string>("窒晕员",@"OrderConfirm")};
|
|
|
|
|
|
|
|
|
public static Form CreateForm(string role)
|
|
|
{
|
|
|
var first = roleToAssemblies.FirstOrDefault(x => x.Item1 == role);
|
|
|
if (first == null)
|
|
|
throw new Exception("未注册的角色");
|
|
|
//#if debug
|
|
|
var filePath = string.Format("{0}.dll", first.Item2);
|
|
|
//#endif
|
|
|
//#if !debug
|
|
|
//var filePath = Path.Combine(Application.StartupPath, string.Format("{0}.dll", first.Item2));
|
|
|
//#endif
|
|
|
if (!File.Exists(filePath))
|
|
|
throw new Exception("相关模块不存在");
|
|
|
var formType = typeof(IAfterLogin);
|
|
|
foreach (var type in Assembly.LoadFile(filePath).GetTypes())
|
|
|
{
|
|
|
if (formType.IsAssignableFrom(type))
|
|
|
{
|
|
|
var instance = (IAfterLogin)Activator.CreateInstance(type);
|
|
|
if (role == instance.RoleName)
|
|
|
return instance.Generate();
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
}
|