using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using SqlSugar; using WinformDevFramework.IServices.System; using WinformDevFramework.Models; using WinformDevFramework.Models.DBModels; namespace WinformDevFramework { public partial class FrmCreateCode : Form { private ISysDataSourceServices _dataSourceServices; public FrmCreateCode(ISysDataSourceServices sysDataSourceServices) { _dataSourceServices = sysDataSourceServices; InitializeComponent(); } private void FrmCreateCode_Load(object sender, EventArgs e) { //初始化数据库 下拉框 comboBox1.DataSource= _dataSourceServices.Query(); comboBox1.DisplayMember = "ConnectName"; comboBox1.ValueMember = "ID"; this.uiComboTreeViewTable.CheckBoxes = true; this.uiComboTreeViewTable.DropDownStyle = Sunny.UI.UIDropDownStyle.DropDownList; uiComboTreeViewTable.ShowClearButton=true; uiComboTreeViewTable.ShowSelectedAllCheckBox=true; } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { sysDataSource dataSource = (sysDataSource)comboBox1.SelectedValue; var connectionString = $"Server={dataSource.Host};Database={dataSource.DataBaseName};User Id = {dataSource.Username}; Password={dataSource.Password}"; textBox1.Text= connectionString; } private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(comboBox1.Text)) { MessageBox.Show("请选择数据库!"); return; } SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = textBox1.Text , DbType = DbType.SqlServer, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute }); try { db.Open(); string sqlGetAllTables = "select TABLE_NAME from INFORMATION_SCHEMA.TABLES order by TABLE_NAME"; var tables=db.Ado.SqlQuery(sqlGetAllTables); uiComboTreeViewTable.TreeView.Nodes.Clear(); foreach (var table in tables) { uiComboTreeViewTable.Nodes.Add(table); } } catch (Exception exception) { MessageBox.Show(exception.Message); } } private void btnOk_Click(object sender, EventArgs e) { if (ValidateData()) { var tables=uiComboTreeViewTable.Text.Split(';'); List ts=new List(); foreach (var table in tables) { var t = table.TrimEnd().TrimStart(); if (!string.IsNullOrEmpty(t)) ts.Add(t); } SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = textBox1.Text , DbType = DbType.SqlServer, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute }); try { //生成实体类 db.DbFirst.IsCreateAttribute().Where(p => ts.Contains(p)).CreateClassFile($"{txtUrl.Text}\\Entity", txtNameSpace.Text); var isc = new IServicesCreate(); var sc = new ServicesCreate(); var irc = new IRepositoryCreate(); var rc = new RepositoryCreate(); //生成Iservices Services IRepository Repository ts.ForEach(p => { isc.Create(p, txtNameSpace.Text, txtUrl.Text); sc.Create(p, txtNameSpace.Text, txtUrl.Text); irc.Create(p, txtNameSpace.Text, txtUrl.Text); rc.Create(p, txtNameSpace.Text, txtUrl.Text); }); MessageBox.Show("生成成功"); } catch (Exception exception) { MessageBox.Show(exception.Message); } } } private void button4_Click(object sender, EventArgs e) { TabControl parentTabControl = this.Parent.Parent as TabControl; TabPage tabpage = this.Parent as TabPage; parentTabControl.TabPages.Remove(tabpage); } private void button2_Click(object sender, EventArgs e) { using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) { if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { string selectedPath = folderBrowserDialog.SelectedPath; // 在这里可以使用选择的路径进行后续操作 txtUrl.Text= selectedPath; } } } private bool ValidateData() { if (string.IsNullOrEmpty(comboBox1.Text)) { MessageBox.Show("请选择数据库"); return false; } if (string.IsNullOrEmpty(uiComboTreeViewTable.Text)) { MessageBox.Show("请选择数据表"); return false; } if (string.IsNullOrEmpty(txtNameSpace.Text)) { MessageBox.Show("命名空间不能为空"); return false; } if (string.IsNullOrEmpty(txtUrl.Text)) { MessageBox.Show("请选择文件生成目录"); return false; } return true; } } }