|
|
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
|
|
|
{
|
|
|
List<string> RoleName { get; }
|
|
|
|
|
|
Form Generate();
|
|
|
}
|
|
|
|
|
|
public static class AfterLoginUtil
|
|
|
{
|
|
|
#if DEBUG
|
|
|
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>(){
|
|
|
new Tuple<string,string>("收购业务.过磅单",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherWeight\bin\Debug\ButcherWeight"),
|
|
|
new Tuple<string,string>("收购业务.验质分圈,收购业务.排宰顺序,收购业务.急宰打码",@"C:\BwpB3Project\src\B3ButcherManageClient\QualityAndOrder\bin\Debug\QualityAndOrder"),
|
|
|
new Tuple<string,string>("收购业务.线下验质分圈,收购业务.线下排宰顺序",@"C:\BwpB3Project\src\B3ButcherManageClient\OffLineQualityAndOrder\bin\Debug\OffLineQualityAndOrder"),
|
|
|
new Tuple<string,string>("收购业务.顺序确认",@"C:\BwpB3Project\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
|
|
|
new Tuple<string,string>("收购业务.烫毛计数",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherOrder\bin\Debug\ButcherOrder"),
|
|
|
new Tuple<string,string>("收购业务.掉猪处理",@"C:\BwpB3Project\src\B3ButcherManageClient\DropPigReOrder\bin\Debug\DropPigReOrder"),
|
|
|
new Tuple<string,string>("收购业务.称重定级,收购业务.定级校验",@"C:\BwpB3Project\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
|
|
|
|
|
|
new Tuple<string,string>("车间业务.白条入库",@"C:\BwpB3Project\src\B3ButcherManageClient\TrunksIousOutInStore\bin\Debug\TrunksIousOutInStore"),
|
|
|
new Tuple<string,string>("车间业务.领料退料",@"C:\BwpB3Project\src\B3ButcherManageClient\MaterialRequisition\bin\Debug\MaterialRequisition"),
|
|
|
new Tuple<string,string>("车间业务.分割称重",@"C:\BwpB3Project\src\B3ButcherManageClient\SegmentationWeight\bin\Debug\SegmentationWeight"),
|
|
|
new Tuple<string,string>("车间业务.分割入库",@"C:\BwpB3Project\src\B3ButcherManageClient\SegmentationInStore\bin\Debug\SegmentationInStore"),
|
|
|
new Tuple<string,string>("车间业务.车间配货",@"C:\BwpB3Project\src\B3ButcherManageClient\Distribution\bin\Debug\Distribution"),
|
|
|
new Tuple<string,string>("收购业务.赶猪出圈",@"C:\BwpB3Project\src\B3ButcherManageClient\OutHouseView\bin\Debug\OutHouseView"),
|
|
|
new Tuple<string,string>("收购业务.窒晕确认",@"C:\BwpB3Project\src\B3ButcherManageClient\OutHouseView\bin\Debug\OutHouseView"),
|
|
|
};
|
|
|
|
|
|
//luanhui 公司电脑
|
|
|
//static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>(){
|
|
|
// new Tuple<string,string>("排宰员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\ButcherOrder\bin\Debug\ButcherOrder"),
|
|
|
// new Tuple<string,string>("过磅员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\ButcherWeight\bin\Debug\ButcherWeight"),
|
|
|
// new Tuple<string,string>("验质员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\QualityAndOrder\bin\Debug\QualityAndOrder"),
|
|
|
// new Tuple<string,string>("定级员",@"C:\BwpB3Project\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
|
|
|
// new Tuple<string,string>("窒晕员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
|
|
|
// new Tuple<string,string>("白条入库",@"D:\BWP\BWPB3\src\B3ButcherManageClient\TrunksIousOutInStore\bin\Debug\TrunksIousOutInStore"),
|
|
|
// new Tuple<string,string>("掉猪处理员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\DropPigReOrder\bin\Debug\DropPigReOrder"),
|
|
|
// new Tuple<string,string>("配货员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\Distribution\bin\Debug\Distribution"),
|
|
|
// new Tuple<string,string>("分割称重",@"D:\BWP\BWPB3\src\B3ButcherManageClient\SegmentationWeight\bin\Debug\SegmentationWeight"),
|
|
|
// new Tuple<string,string>("分割入库",@"D:\BWP\BWPB3\src\B3ButcherManageClient\SegmentationInStore\bin\Debug\SegmentationInStore"),
|
|
|
// new Tuple<string,string>("定级校验",@"D:\BWP\BWPB3\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
|
|
|
//};
|
|
|
#else
|
|
|
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>()
|
|
|
{
|
|
|
new Tuple<string,string>("收购业务.过磅单",@"ButcherWeight"),
|
|
|
new Tuple<string,string>("收购业务.验质分圈,收购业务.排宰顺序,收购业务.急宰打码",@"QualityAndOrder"),
|
|
|
new Tuple<string,string>("收购业务.线下验质分圈,收购业务.线下排宰顺序",@"OffLineQualityAndOrder"),
|
|
|
new Tuple<string,string>("收购业务.顺序确认",@"OrderConfirm"),
|
|
|
new Tuple<string,string>("收购业务.烫毛计数",@"ButcherOrder"),
|
|
|
new Tuple<string,string>("收购业务.掉猪处理",@"DropPigReOrder"),
|
|
|
new Tuple<string,string>("收购业务.称重定级,收购业务.定级校验",@"WeighAndGrading"),
|
|
|
new Tuple<string,string>("收购业务.赶猪出圈",@"OutHouseView"),
|
|
|
new Tuple<string,string>("收购业务.窒晕确认",@"OutHouseView"),
|
|
|
|
|
|
new Tuple<string,string>("车间业务.白条入库",@"TrunksIousOutInStore"),
|
|
|
new Tuple<string,string>("车间业务.领料退料",@"MaterialRequisition"),
|
|
|
new Tuple<string,string>("车间业务.分割称重",@"SegmentationWeight"),
|
|
|
new Tuple<string,string>("车间业务.分割入库",@"SegmentationInStore"),
|
|
|
new Tuple<string,string>("车间业务.车间配货",@"Distribution"),
|
|
|
};
|
|
|
#endif
|
|
|
|
|
|
public static Form CreateForm()
|
|
|
{
|
|
|
foreach (var item in roleToAssemblies)
|
|
|
{
|
|
|
var roleArr = item.Item1.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
foreach (var role in roleArr)
|
|
|
{
|
|
|
if (LoginRpcUtil.UserIsInRole(role))
|
|
|
{
|
|
|
#if DEBUG
|
|
|
var filePath = string.Format("{0}.dll", item.Item2);
|
|
|
#else
|
|
|
var filePath = Path.Combine(Application.StartupPath, string.Format("{0}.dll", item.Item2));
|
|
|
#endif
|
|
|
if (!File.Exists(filePath))
|
|
|
continue;
|
|
|
var formType = typeof(IAfterLogin);
|
|
|
foreach (var type in Assembly.LoadFile(filePath).GetTypes())
|
|
|
{
|
|
|
if (formType.IsAssignableFrom(type))
|
|
|
{
|
|
|
var instance = (IAfterLogin)Activator.CreateInstance(type);
|
|
|
if (instance.RoleName.Contains(role))
|
|
|
return instance.Generate();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
}
|