130 lines
4.8 KiB
C#
130 lines
4.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using SOH.Kernel;
|
|
using EAS.Services;
|
|
using System.Reflection;
|
|
using System.IO;
|
|
using SOH.BLL;
|
|
using SOH.Entities;
|
|
|
|
namespace SOH.BasicSettings
|
|
{
|
|
[ModuleAttribute(ModuleID = "7A8E178B-E059-4BC9-ACC7-4D1561D5C13E", ModuleName = "加载所有程序模块")]
|
|
public partial class frmAddModules : SOH.Window.baseChildForm
|
|
{
|
|
List<SYS_ASS> sys_asss = new List<SYS_ASS>();
|
|
DataTable dt = new DataTable();
|
|
public frmAddModules()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void btn_load_Click(object sender, EventArgs e)
|
|
{
|
|
initass();
|
|
}
|
|
private void initass()
|
|
{
|
|
//throw new NotImplementedException();
|
|
var qx = ServiceContainer.GetService<IQuanXian>();
|
|
string[] dlls = Directory.GetFiles(Application.StartupPath)
|
|
.Where(p => p.ToLower().EndsWith(".dll")).ToArray();
|
|
var basebll = EAS.Services.ServiceContainer.GetService<IBasic>();
|
|
foreach (string dll in dlls)
|
|
{
|
|
try
|
|
{
|
|
Assembly ass = Assembly.LoadFrom(dll);
|
|
object[] cusatt = ass.GetCustomAttributes(typeof(AssemblyAttribute), false);
|
|
if (cusatt.Length > 0)
|
|
{
|
|
//ToolStripItem tsi = new ToolStripItem();
|
|
//ToolStripMenuItem tsmi = new ToolStripMenuItem();
|
|
|
|
AssemblyAttribute assatt = cusatt[0] as AssemblyAttribute;
|
|
//tsmi.Text = assatt.AssemblyName;
|
|
// tsmi.Click += tsmi_Click;
|
|
//mainMenu.Items.Add()
|
|
SYS_ASS sass = qx.getAss(assatt.ID);
|
|
if (sass == null)
|
|
{ sass = new SYS_ASS(); }
|
|
sass.dllname = new FileInfo(dll).Name;
|
|
sass.updatetime = new FileInfo(dll).LastWriteTime;
|
|
sass.guid = assatt.ID;
|
|
sass.assname = assatt.AssemblyName;
|
|
//sass.id = basebll.GetMax(sass.DbTableName, 1);
|
|
//sass.a
|
|
foreach (Type t in ass.GetTypes())
|
|
{
|
|
object[] matt = t.GetCustomAttributes(typeof(ModuleAttribute), false);
|
|
if (matt.Length > 0)
|
|
{
|
|
ModuleAttribute modatt = matt[0] as ModuleAttribute;
|
|
modules m = new modules();
|
|
m.assid = sass.id;
|
|
m.FullName = t.FullName;
|
|
m.typename = modatt.ModuleName;
|
|
m.guid = modatt.ModuleID;
|
|
DataRow dr = dt.NewRow();
|
|
dr["assid"] = sass.guid;
|
|
dr["lastupdatetime"] = sass.updatetime;
|
|
dr["assname"] = sass.assname;
|
|
dr["dllname"] = sass.dllname;
|
|
dr["moduleid"] = m.guid;
|
|
dr["fullname"] = m.FullName;
|
|
dr["modulename"] = m.typename;
|
|
dt.Rows.Add(dr);
|
|
Application.DoEvents();
|
|
sass.modules.Add(m);
|
|
}
|
|
}
|
|
//qx.addASS(sass);
|
|
|
|
sys_asss.Add(sass);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void frmAddModules_Load(object sender, EventArgs e)
|
|
{
|
|
dt.Columns.Add("assid");
|
|
dt.Columns.Add("assname");
|
|
dt.Columns.Add("lastupdatetime");
|
|
dt.Columns.Add("moduleid");
|
|
dt.Columns.Add("dllname");
|
|
dt.Columns.Add("modulename");
|
|
dt.Columns.Add("fullname");
|
|
dataGridView1.DataSource = dt;
|
|
}
|
|
|
|
private void btn_insert_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
var qx = ServiceContainer.GetService<IQuanXian>();
|
|
foreach (SYS_ASS sa in sys_asss)
|
|
{
|
|
qx.addASS(sa);
|
|
}
|
|
MessageBox.Show("安装成功!");
|
|
}
|
|
catch (System.Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|