using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Windows.Forms;
|
using System.IO;
|
using Newtonsoft.Json;
|
using System.Windows.Forms.VisualStyles;
|
using GenerateCode_WeiBen_WMS.DataBaseFactory;
|
using GenerateCode_WeiBen_WMS.Const;
|
using GenerateCode_WeiBen_WMS.Model;
|
using GenerateCode_WeiBen_WMS.Utility;
|
using System.Xml;
|
using System.Linq;
|
using GenerateCode_GEBrilliantFactory.Model;
|
|
namespace GenerateCode_GEBrilliantFactory
|
{
|
public partial class MainForm : Form
|
{
|
public static string projectNamePrefix = "";
|
public static string dataBaseName = "";
|
public static DataBaseEnum dataBaseEnum = DataBaseEnum.MySql;
|
public MainForm()
|
{
|
InitializeComponent();
|
|
this.tbPath.Text = "D:\\C#AutoCreateCodeFile";
|
|
this.tb_Primary.Text = "id";//主键名
|
this.tb_PrimaryDesc.Text = "主键";
|
this.tb_OrderBy.Text = "CreationTime";//排序字段
|
|
this.tb_TableName.Text = "scms_wmsmaterials";//表名
|
this.tb_WCF_NameSpacePath.Text = "HIAWms";//WCF项目命名空间
|
|
this.tb_ChinaComment.Text = "物料基础信息表";//中文注释
|
this.tb_MenuName.Text = "物料信息";//中文注释
|
this.tb_PageMenuInstanceName.Text = "wmsMaterial";
|
this.tb_CreatePerson.Text = "shaocx";//创建人
|
this.tb_EntityName.Text = "WmsMaterial";//实体类名
|
|
this.tb_LikeQueryAttrs.Text = "'MaterialCode', 'MaterialName', 'Remark'";
|
this.tb_LikeQueryAttrsName.Text = "请输入物料编码/物料名称/备注";
|
|
//this.tb_EntityProName.Text = "wmsMaterial";//实体类对象名
|
this.tb_EnumList.Text = "PurchaseType,PurchaseTypeEnum&MaterialType,MaterialTypeEnum&IsMainBranch,YesNoEnum";
|
|
this.cmb_DataSource.DropDownStyle = ComboBoxStyle.DropDownList;
|
List<ListItem> itemList = CommonHelper.GetDataSources();
|
foreach (var item in itemList)
|
{
|
this.cmb_DataSource.Items.Add(item);
|
}
|
this.cmb_DataSource.SelectedIndex = 0;
|
|
this.cmb_DataBase.DropDownStyle = ComboBoxStyle.DropDownList;
|
List<ListItem> itemList_Db = CommonHelper.GetDataBase();
|
foreach (var item in itemList_Db)
|
{
|
this.cmb_DataBase.Items.Add(item);
|
}
|
this.cmb_DataBase.SelectedIndex = 0;
|
}
|
|
/// <summary>
|
/// 保存路径对话框
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void button1_Click(object sender, EventArgs e)
|
{
|
FolderBrowserDialog fbd = new FolderBrowserDialog();
|
if (DialogResult.OK == fbd.ShowDialog())
|
{
|
tbPath.Text = fbd.SelectedPath;
|
}
|
}
|
|
private void btnExit_Click(object sender, EventArgs e)
|
{
|
Application.Exit();
|
}
|
|
//一键生成所有文件
|
private void btn_CreateFile_Click(object sender, EventArgs e)
|
{
|
var genCodeRootPath = "";
|
try
|
{
|
projectNamePrefix = "";
|
//if (projectNamePrefix == "")
|
//{
|
// MessageBox.Show("请输入项目名前缀!");
|
// this.tb_ProjectNamePrefix.Focus();
|
// return;
|
//}
|
|
if (dataBaseName == "")
|
{
|
MessageBox.Show("请选择数据库!");
|
return;
|
}
|
|
string primaryKey = this.tb_Primary.Text.Trim();//主键名
|
string primaryKeyDesc = this.tb_PrimaryDesc.Text.Trim();//主键描述
|
string tableName = this.tb_TableName.Text.Trim();//表名
|
string wcf_NameSpacePath = this.tb_WCF_NameSpacePath.Text.Trim();//WCF项目命名空间
|
|
|
|
string _tb_OrderBy = this.tb_OrderBy.Text.Trim();//中文注释
|
if (_tb_OrderBy == "")
|
{
|
MessageBox.Show("请输入 排序!");
|
this.tb_OrderBy.Focus();
|
return;
|
}
|
|
string _tb_DeleteAlertAttr = this.tb_DeleteAlertAttr.Text.Trim();//中文注释
|
if (_tb_DeleteAlertAttr == "")
|
{
|
MessageBox.Show("请输入 删除提示字段!");
|
this.tb_DeleteAlertAttr.Focus();
|
return;
|
}
|
|
string _tb_ValidateRepeatName = this.tb_ValidateRepeatName.Text.Trim();//中文注释
|
if (_tb_ValidateRepeatName == "")
|
{
|
MessageBox.Show("请输入 重复性校验字段!");
|
this.tb_ValidateRepeatName.Focus();
|
return;
|
}
|
|
string _tb_LikeQueryAttrsName = this.tb_LikeQueryAttrsName.Text.Trim();//中文注释
|
if (_tb_LikeQueryAttrsName == "")
|
{
|
//MessageBox.Show("请输入 模糊查询字段名!");
|
//this.tb_LikeQueryAttrsName.Focus();
|
//return;
|
}
|
|
string _tb_LikeQueryAttrs = this.tb_LikeQueryAttrs.Text.Trim();//中文注释
|
if (_tb_LikeQueryAttrs == "")
|
{
|
//MessageBox.Show("请输入 模糊查询字段!");
|
//this.tb_LikeQueryAttrs.Focus();
|
//return;
|
}
|
|
string chinaComment = this.tb_ChinaComment.Text.Trim();//中文注释
|
if (chinaComment == "")
|
{
|
MessageBox.Show("请输入 表的中文注解!");
|
this.tb_ChinaComment.Focus();
|
return;
|
}
|
string menuName = this.tb_MenuName.Text.Trim();//中文注释
|
if (menuName == "")
|
{
|
MessageBox.Show("请输入 页面菜单名!");
|
this.tb_MenuName.Focus();
|
return;
|
}
|
string _tb_PageMenuInstanceName = this.tb_PageMenuInstanceName.Text.Trim();//中文注释
|
if (_tb_PageMenuInstanceName == "")
|
{
|
MessageBox.Show("请输入 页面菜单对象缩写!");
|
this.tb_PageMenuInstanceName.Focus();
|
return;
|
}
|
string createPerson = this.tb_CreatePerson.Text.Trim();//创建人
|
string entityName = this.tb_EntityName.Text.Trim();//实体类名
|
string tableAlias = this.tb_EntityProName.Text.Trim();//实体类对象名/表别名
|
string orderByName = this.tb_OrderBy.Text.Trim();//排序字段名称
|
string _tb_VueRootFolerName = this.tb_VueRootFolerName.Text.Trim();//WCF路由前缀
|
string connStr = this.lbl_DataSource.Text.Trim();//数据库连接字符串
|
if (connStr == "")
|
{
|
MessageBox.Show("请选择数据库源!");
|
this.cmb_DataSource.Focus();
|
return;
|
}
|
if (tableName == "")
|
{
|
MessageBox.Show("请输入表名!");
|
this.tb_TableName.Focus();
|
return;
|
}
|
if (primaryKey == "")
|
{
|
MessageBox.Show("请输入主键名!");
|
this.tb_Primary.Focus();
|
return;
|
}
|
if (_tb_VueRootFolerName == "")
|
{
|
MessageBox.Show("请输入 前端根文件夹名称!");
|
this.tb_VueRootFolerName.Focus();
|
return;
|
}
|
if (wcf_NameSpacePath == "")
|
{
|
MessageBox.Show("请输入命名空间!");
|
this.tb_WCF_NameSpacePath.Focus();
|
return;
|
}
|
|
//读取Mysql
|
var handler = DataBaseServiceFactory.GetHandle(dataBaseEnum);
|
List<ColumnModel> columnList = handler.GetColumnList(tableName, connStr);
|
if (columnList.Count == 0)
|
{
|
MessageBox.Show("没有获取到表下面的列集合!");
|
return;
|
}
|
//增加校验
|
//if (columnList.Where(x => x.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper()).Count() == 0)
|
//{
|
// MessageBox.Show($"表中没有字段{SystemCommonVar.c_creator}!");
|
// return;
|
//}
|
|
|
|
|
string str_generate = "";
|
bool tf;
|
|
GenerateCodeParam param = new GenerateCodeParam()
|
{
|
OrderBy = _tb_OrderBy,
|
DeleteAlertAttr = CommonHelper.FirstLowercase(_tb_DeleteAlertAttr),
|
Modulelogo = "",
|
ChinaComment = chinaComment,
|
PageMenuName = menuName,
|
PageMenuInstanceName = _tb_PageMenuInstanceName,
|
NameSpacePath = wcf_NameSpacePath,
|
ColumnNameList = columnList,
|
EntityName = entityName,
|
EntityInstanceName = tableAlias,
|
LikeQueryAttrs = _tb_LikeQueryAttrs,
|
LikeQueryAttrsName = _tb_LikeQueryAttrsName,
|
ValidateRepeatName = this.tb_ValidateRepeatName.Text
|
};
|
//处理枚举类型
|
List<EnumModel> enumList = new List<EnumModel>();
|
var str_enumList = this.tb_EnumList.Text.Trim();
|
if (str_enumList.IndexOf('&') > -1)
|
{
|
str_enumList = str_enumList.Replace("\n", "");
|
str_enumList = str_enumList.Replace("\t", "");
|
str_enumList = str_enumList.Replace("\r", "");
|
var arr_enumList = str_enumList.Split('&');
|
foreach (var item in arr_enumList)
|
{
|
var arr_single = item.Split(',');
|
enumList.Add(new EnumModel()
|
{
|
EnumAttrName = arr_single[0],
|
EnumType = arr_single[1],
|
EnumTypeDesc = arr_single[0] + SystemConst.enumDescName
|
});
|
}
|
}
|
else
|
{
|
if (!string.IsNullOrEmpty(str_enumList))
|
{
|
var arr_single = str_enumList.Split(',');
|
enumList.Add(new EnumModel()
|
{
|
EnumAttrName = arr_single[0],
|
EnumType = arr_single[1],
|
EnumTypeDesc = arr_single[0] + SystemConst.enumDescName
|
});
|
}
|
}
|
param.EnumList = enumList;
|
|
//生成Model
|
//CreateModelFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
|
//CreateModelParamFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
|
genCodeRootPath = tbPath.Text + @"\" + tb_WCF_NameSpacePath.Text.Trim();
|
//var webFolerPath = (tb_WCF_NameSpacePath.Text.Trim() + "_Web").ToLower();
|
var webFolerPath = _tb_VueRootFolerName;
|
#region 实体类
|
var entityFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Dtos\" + tb_EntityName.Text.Trim();
|
//1、生成 分页查询实体 文件
|
str_generate = InputQueryModel_Generate.CreateQueryModelLText(param);
|
tf = TextHelper.Export2File_V2(entityFilePath, $"Get{param.EntityName}Input.cs", str_generate);
|
|
//2、生成 CreateDto 文件
|
str_generate = CreateDto_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateDto.cs", str_generate);
|
|
//3、生成 UpdateDto 文件
|
str_generate = UpdateDto_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}UpdateDto.cs", str_generate);
|
|
//4、生成 CreateOrUpdateDtoBase 文件
|
str_generate = CreateOrUpdateDtoBase_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateOrUpdateDtoBase.cs", str_generate);
|
|
//5、生成 Dto 文件
|
str_generate = Dto_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}Dto.cs", str_generate);
|
|
//6、生成 Export 文件
|
str_generate = ExportModel_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}ExportModel.cs", str_generate);
|
|
//7、生成 Import 文件
|
str_generate = ImportModel_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}sImportModel.cs", str_generate);
|
|
#endregion
|
|
#region AppSerivice
|
|
//8、生成 IAppService 文件
|
var appServiceFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Services";
|
str_generate = IAppService_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(appServiceFilePath, $"I{param.EntityName}AppService.cs", str_generate);
|
|
//9、生成 AppService 文件
|
appServiceFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application\Implements";
|
str_generate = AppService_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(appServiceFilePath, $"{param.EntityName}AppService.cs", str_generate);
|
|
|
#endregion
|
|
#region Contorller
|
|
//10、生成 Contorller 文件
|
var continerlllePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @"\Controller";
|
str_generate = Controller_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(continerlllePath, $"{param.EntityName}Controller.cs", str_generate);
|
|
|
#endregion
|
|
#region Domain
|
|
//11、生成 IRepository 文件
|
var iRepositoryPath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Domain\" + tb_EntityName.Text.Trim(); ;
|
str_generate = IRepository_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(iRepositoryPath, $"I{param.EntityName}Repository.cs", str_generate);
|
|
|
#endregion
|
|
#region EntityFrameworkCore
|
|
//12、生成 EfCoreRepository 文件
|
var efCoreRepositoryPath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".EntityFrameworkCore\Repositories";
|
str_generate = EfCoreRepository_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(efCoreRepositoryPath, $"EfCore{param.EntityName}Repository.cs", str_generate);
|
|
|
#endregion
|
|
#region Web
|
var webRootPath = genCodeRootPath + @"\" + webFolerPath + @"\src\widgets\" + tb_EntityName.Text.Trim();
|
|
//13、生成 Index 文件
|
str_generate = Index_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath, $"index.ts", str_generate);
|
|
//14、生成 enum 文件
|
str_generate = enum_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath, $"enum.ts", str_generate);
|
|
|
//15、生成 Controllers\File 文件
|
str_generate = File_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"File.ts", str_generate);
|
|
//16、生成 Controllers\EntityMode 文件
|
str_generate = EntityMode_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}.ts", str_generate);
|
|
|
//17、生成 Controllers\EntityModeDrawer 文件
|
str_generate = EntityModeDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}Drawer.tsx", str_generate);
|
|
//18、生成 Controllers\EntityModeQueryDrawer 文件
|
str_generate = EntityModeQueryDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}QueryDrawer.tsx", str_generate);
|
|
|
//19、生成 type\type 文件
|
str_generate = type_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\type", $"type.d.ts", str_generate);
|
|
|
//20、生成 Views\NameSpacePath 文件
|
str_generate = NameSpacePath_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views", $"{param.EntityName}.tsx", str_generate);
|
|
//21、生成 Views\NameSpacePath_module 文件
|
str_generate = NameSpacePath_module_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views", $"{param.EntityName}.module.scss", str_generate);
|
|
//22、生成 Views\NameSpacePath_Config 文件
|
str_generate = EntityNameClass_json_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\config", $"{param.EntityName}.json", str_generate);
|
|
|
//23、生成 Views\NameSpacePath_Config 文件
|
str_generate = EntityNameClass_module_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\" + param.EntityName, $"{param.EntityName}.module.scss", str_generate);
|
|
//24、生成 Views\EntityNameClass模板 文件
|
str_generate = EntityNameClass_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\" + param.EntityName, $"{param.EntityName}.tsx", str_generate);
|
|
//25、生成 Views\EntityNameClass_Config模板 文件
|
str_generate = EntityNameClass_Config_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\" + param.EntityName, $"Config.ts", str_generate);
|
|
|
//26、生成 Views\EntityNameClassDrawer_module_Generate 文件
|
str_generate = EntityNameClassDrawer_module_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "Drawer", param.EntityName + "Drawer" + $".module.scss", str_generate);
|
|
//27、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = EntityNameClassDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "Drawer", param.EntityName + "Drawer" + $".tsx", str_generate);
|
|
//28、生成 Views\EntityNameClassDrawer_module_Generate 文件
|
str_generate = EntityNameClassQueryDrawer_module_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "QueryDrawer", param.EntityName + "QueryDrawer" + $".module.scss", str_generate);
|
|
//29、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = EntityNameClassQueryDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "QueryDrawer", param.EntityName + "QueryDrawer" + $".tsx", str_generate);
|
|
|
//30、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = Models_EntityNameClassQueryDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Models", param.EntityName + "QueryDrawer" + $".ts", str_generate);
|
|
//31、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = Models_EntityNameClassDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Models", param.EntityName + "Drawer" + $".ts", str_generate);
|
|
//32、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = Models_EntityNameClass_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Models", param.EntityName + $".ts", str_generate);
|
|
|
//33、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = Models_Service_EntityNameClassQueryDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Models\Service", param.EntityName + "QueryDrawer" + $".ts", str_generate);
|
|
//34、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = Models_Service_EntityNameClassDrawer_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Models\Service", param.EntityName + "Drawer" + $".ts", str_generate);
|
|
//35、生成 Views\EntityNameClassDrawer_Generate 文件
|
str_generate = Models_Service_EntityNameClass_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(webRootPath + @"\Models\Service", param.EntityName + $".ts", str_generate);
|
|
|
#endregion
|
|
|
//36、生成 AutoMapperProfile 文件
|
var autoMapFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application\MapperProfiles";
|
str_generate = AutoMapperProfile_Generate.CreateText(param);
|
tf = TextHelper.Export2File_V2(autoMapFilePath, param.EntityName + $"AutoMapperProfile.cs", str_generate);
|
|
//37、生成 导出模板Excel文件
|
List<ColumnModel> newColumnNameList = ListHelper.RemoveForPageTableListQueryAttributes(param.ColumnNameList);
|
ImportTemplteHelper.CreateImportTemplte(param, newColumnNameList, genCodeRootPath);
|
|
|
////生成 OutputModel 文件
|
//str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName);
|
//tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.OutputModel, filePrefixName, entityName, modulelogo);
|
|
////生成Controller文件
|
////str_generate = Controller_Generate.CreateText(modulelogo, chinaComment, columnList, entityName, orderByName);
|
////tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Controller, filePrefixName, entityName, modulelogo);
|
|
////生成Services接口文件
|
//str_generate = Services_Interface_Generate.CreateText(wcf_NameSpacePath, modulelogo, entityName, chinaComment, addEntityParam);
|
//tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFace, filePrefixName, entityName, modulelogo);
|
|
|
////生成Services接口实现文件
|
//str_generate = Services_InterfaceRealize_Generate.CreateText(wcf_NameSpacePath, modulelogo,
|
// entityName, chinaComment, filePrefixName, primaryKey, tableAlias, addEntityParam, columnList, groupName);
|
//tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFaceRealize, filePrefixName, entityName, modulelogo);
|
|
/*
|
//生成存储过程文件
|
str_generate = Procedure_Generate.CreateProcText(tableName, tableAlias, createPerson, chinaComment,
|
primaryKey, filePrefixName, orderByName, modulelogo, columnList);
|
tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Proc, filePrefixName, entityName, modulelogo);
|
|
//生成DAL文件
|
str_generate = DAL_Generate.CreateDALText(filePrefixName, tableName, entityName, createPerson,
|
chinaComment, primaryKey, primaryKeyDesc, modulelogo, tableAlias, columnList);
|
tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.DAL, filePrefixName, entityName, modulelogo);
|
|
//生成BLL文件
|
str_generate = BLL_Generate.CreateBLLText(filePrefixName, tableName, entityName, createPerson,
|
chinaComment, primaryKey, primaryKeyDesc, modulelogo, tableAlias, addEntityParam, columnList);
|
tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.BLL, filePrefixName, entityName, modulelogo);
|
|
|
|
//生成AddModel文件
|
str_generate = AddModel_Generate.CreateAddModelLText(addEntityParam, chinaComment, columnList);
|
tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.AddModelParam, filePrefixName, entityName, modulelogo);
|
|
|
|
|
//*/
|
|
//VUE方法配置
|
//str_generate = VUE_FunConfig_Generate.CreateText(modulelogo, chinaComment, routePrefix, entityName);
|
//tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.VUE_FunConfig, filePrefixName, entityName, modulelogo);
|
|
//VUE文件
|
//str_generate = VUE_Generate.CreateText(tableAlias, modulelogo, primaryKey, columnList, chinaComment
|
// , this.tb_templeteFileDownName.Text, this.tb_importExcelCategroy.Text);
|
//tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.VUEFile, filePrefixName, entityName, modulelogo);
|
|
//btn_InsertSql_Click(null, null);
|
}
|
catch (Exception ex)
|
{
|
MessageBox.Show("生成文件失败!" + ex.Message);
|
return;
|
}
|
//MessageBox.Show("生成文件成功!");
|
//成功之后打开文件夹
|
using (System.Diagnostics.Process.Start(genCodeRootPath))
|
{
|
|
}
|
//*/
|
}
|
|
#region 分类文件
|
|
/// <summary>
|
/// 生成Model
|
/// </summary>
|
/// <param name="_tableName"></param>
|
private void CreateModelFile(List<ColumnModel> strList, string _tableName, string filePrefixName, string nameSpacePath,
|
string createPerson, string chinaComment, string entityName, string modulelogo)
|
{
|
bool tf = TextHelper.Export2File(tbPath.Text, _tableName,
|
Model_Generate.GenerateModel(_tableName, strList, filePrefixName, nameSpacePath, createPerson, chinaComment, entityName),
|
FileType.Model, filePrefixName, entityName, modulelogo);
|
}
|
|
/// <summary>
|
/// 生成Model参数
|
/// </summary>
|
/// <param name="_tableName"></param>
|
private void CreateModelParamFile(List<ColumnModel> strList, string _tableName, string filePrefixName, string nameSpacePath,
|
string createPerson, string chinaComment, string entityName, string modulelogo)
|
{
|
bool tf = TextHelper.Export2File(tbPath.Text, _tableName,
|
Model_Generate.GenerateModelParam(_tableName, strList, filePrefixName, nameSpacePath, createPerson, chinaComment, entityName),
|
FileType.Model, filePrefixName, entityName, modulelogo);
|
}
|
#endregion
|
|
/// <summary>
|
/// 文本改变事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tb_TableName_TextChanged(object sender, EventArgs e)
|
{
|
string tableName = this.tb_TableName.Text.Trim();//表名
|
if (tableName != "")
|
{
|
var str = CommonHelper.TitleToUpper(tableName);
|
|
var index = tableName.IndexOf('_');
|
if (index > -1)
|
{
|
var moule_str = tableName.Substring(index + 1, tableName.Length - index - 1);
|
|
tb_PageMenuInstanceName.Text = this.tb_EntityProName.Text = CommonHelper.TitleToLower(moule_str);
|
}
|
else
|
{
|
|
tb_PageMenuInstanceName.Text = this.tb_EntityProName.Text = CommonHelper.TitleToLower(tableName);
|
}
|
}
|
}
|
|
private void btn_InsertSql_Click(object sender, EventArgs e)
|
{
|
string connStr = this.lbl_DataSource.Text.Trim();//数据库连接字符串
|
if (connStr == "")
|
{
|
MessageBox.Show("请选择数据库源!");
|
this.cmb_DataSource.Focus();
|
return;
|
}
|
var tableName = this.tb_TableName.Text.Trim();
|
if (tableName == string.Empty)
|
{
|
MessageBox.Show("请输入表名!");
|
return;
|
}
|
List<ColumnModel> columnList = StructStrHelper.GetColumnList(tableName, connStr);
|
if (columnList.Count == 0)
|
{
|
MessageBox.Show("没有获取到表下面的列集合!");
|
return;
|
}
|
string chinaComment = this.tb_ChinaComment.Text.Trim();//中文注释
|
string createPerson = this.tb_CreatePerson.Text.Trim();//创建人
|
var str_generate = InsertSQL_Generate.CreateInsertSQLText(tableName, createPerson, chinaComment, columnList);
|
bool tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.SQL_Insert, "", "", "");
|
//MessageBox.Show("生成文件成功!");
|
//成功之后打开文件夹
|
using (System.Diagnostics.Process.Start(this.tbPath.Text + "\\" + this.tb_TableName.Text))
|
{
|
|
}
|
}
|
|
private void label13_Click(object sender, EventArgs e)
|
{
|
|
}
|
|
private void MainForm_Load(object sender, EventArgs e)
|
{
|
|
}
|
|
private void cmb_DataSource_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
string connStr = (this.cmb_DataSource.SelectedItem as ListItem).Value;
|
var name = (this.cmb_DataSource.SelectedItem as ListItem).Text;
|
this.lbl_DataSource.Text = connStr;
|
dataBaseName = name;
|
if (name == "GSiemens_LES")
|
{
|
// this.tb_ProjectNamePrefix.Text = "LES";
|
}
|
else if (name == "GSiemens_WIP")
|
{
|
// this.tb_ProjectNamePrefix.Text = "WIP";
|
}
|
else if (name.Contains("AoSinWms"))
|
{
|
// this.tb_ProjectNamePrefix.Text = "AoSinWms";
|
}
|
else
|
{
|
// this.tb_ProjectNamePrefix.Text = "Test";
|
}
|
}
|
|
private void ck_IsShowImport_CheckedChanged(object sender, EventArgs e)
|
{
|
//this.tb_templeteFileDownName.Enabled = false;
|
//this.tb_importExcelCategroy.Enabled = false;
|
//if (this.ck_IsShowImport.Checked)
|
//{
|
// this.tb_templeteFileDownName.Enabled = true;
|
// this.tb_importExcelCategroy.Enabled = true;
|
//}
|
}
|
|
private void tb_EntityProName_TextChanged(object sender, EventArgs e)
|
{
|
|
}
|
|
private void cmb_DataBase_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
string connStr = (this.cmb_DataBase.SelectedItem as ListItem).Value;
|
var name = (this.cmb_DataBase.SelectedItem as ListItem).Text;
|
|
dataBaseEnum = (DataBaseEnum)Enum.Parse(typeof(DataBaseEnum), name);
|
}
|
|
private void btn_SelectFile_Click(object sender, EventArgs e)
|
{
|
OpenFileDialog fileDialog = new OpenFileDialog();
|
fileDialog.Multiselect = true;
|
fileDialog.Title = "请选择文件";
|
fileDialog.Filter = "所有文件(*txt*)|*.txt*"; //设置要选择的文件的类型
|
if (fileDialog.ShowDialog() == DialogResult.OK)
|
{
|
string file = fileDialog.FileName;//返回文件的完整路径
|
this.tb_FilePath.Text = file;
|
}
|
}
|
|
private void tb_FilePath_TextChanged(object sender, EventArgs e)
|
{
|
try
|
{
|
string filePath = this.tb_FilePath.Text;
|
|
string[] lines = File.ReadAllLines(filePath);
|
|
// 创建实体类对象
|
GenerateCodeConfigParam entity = new GenerateCodeConfigParam();
|
|
// 解析每一行内容并赋值给实体类属性
|
foreach (string line in lines)
|
{
|
if (line.Contains(":"))
|
{
|
string[] parts = line.Split(':');
|
string propertyName = parts[0].Trim('[', ']');
|
string propertyValue = parts[1].Trim();
|
|
// 根据属性名赋值
|
switch (propertyName)
|
{
|
case "表名":
|
entity.表名 = propertyValue;
|
break;
|
case "实体类名":
|
entity.实体类名 = propertyValue;
|
break;
|
case "实体类对象名":
|
entity.实体类对象名 = propertyValue;
|
break;
|
case "页面菜单名":
|
entity.页面菜单名 = propertyValue;
|
break;
|
case "页面菜单对象缩写":
|
entity.页面菜单对象缩写 = propertyValue;
|
break;
|
case "表的中文注解":
|
entity.表的中文注解 = propertyValue;
|
break;
|
case "重复性校验字段":
|
entity.重复性校验字段 = propertyValue;
|
break;
|
case "删除提示字段":
|
entity.删除提示字段 = propertyValue;
|
break;
|
case "模糊查询字段":
|
entity.模糊查询字段 = propertyValue;
|
break;
|
case "模糊查询字段名":
|
entity.模糊查询字段名 = propertyValue;
|
break;
|
case "项目命名空间":
|
entity.项目命名空间 = propertyValue;
|
break;
|
case "枚举类型字段集合":
|
entity.枚举类型字段集合 = propertyValue;
|
break;
|
case "前端根文件夹名称":
|
entity.前端根文件夹名称 = propertyValue;
|
break;
|
case "排序":
|
entity.排序 = propertyValue;
|
break;
|
}
|
}
|
}
|
|
//给界面赋值
|
this.tb_TableName.Text = "";//表名
|
this.tb_WCF_NameSpacePath.Text = "";//表名
|
this.tb_ChinaComment.Text = "";//表名
|
this.tb_MenuName.Text = "";//表名
|
this.tb_PageMenuInstanceName.Text = "";//表名
|
this.tb_EntityName.Text = "";//表名
|
|
this.tb_LikeQueryAttrs.Text = "";//表名
|
this.tb_LikeQueryAttrsName.Text = "";//表名
|
|
this.tb_EntityProName.Text = "";//表名
|
this.tb_EnumList.Text = "";//表名
|
this.tb_ValidateRepeatName.Text = "";//表名
|
this.tb_DeleteAlertAttr.Text = "";//表名
|
|
this.tb_TableName.Text = entity.表名;//表名
|
this.tb_WCF_NameSpacePath.Text = entity.项目命名空间;//WCF项目命名空间
|
this.tb_ChinaComment.Text = entity.表的中文注解;//中文注释
|
this.tb_MenuName.Text = entity.页面菜单名;
|
this.tb_PageMenuInstanceName.Text = entity.页面菜单对象缩写;
|
this.tb_EntityName.Text = entity.实体类名;//实体类名
|
|
this.tb_LikeQueryAttrs.Text = entity.模糊查询字段;
|
this.tb_LikeQueryAttrsName.Text = entity.模糊查询字段名;
|
|
this.tb_EntityProName.Text = entity.实体类对象名;//实体类对象名
|
this.tb_EnumList.Text = entity.枚举类型字段集合;
|
this.tb_ValidateRepeatName.Text = entity.重复性校验字段;
|
this.tb_DeleteAlertAttr.Text = entity.删除提示字段;
|
this.tb_VueRootFolerName.Text = entity.前端根文件夹名称;
|
|
this.tb_OrderBy.Text = entity.排序;
|
|
}
|
catch (FileNotFoundException)
|
{
|
Console.WriteLine("错误: 文件未找到!");
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine($"错误: 发生了一个未知错误: {ex.Message}");
|
}
|
}
|
|
private void button1_Click_1(object sender, EventArgs e)
|
{
|
this.tb_FilePath.Text = "";
|
}
|
}
|
}
|