tijian_jichuang/Code/BasicSettings/frmAddModules.cs
2025-02-20 11:54:48 +08:00

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);
}
}
}
}