public BusinessNodeInfo GetBusinessNodeInfo(SelectFileInfo objSelectFileInfo) { BusinessNodeInfo result; if (!objSelectFileInfo.IsExistsCodeConfig()) { result = null; } else { string itemPathEntityName = objSelectFileInfo.GetItemPathEntityName(); if (string.IsNullOrWhiteSpace(itemPathEntityName)) { MessageBox.Show(objSelectFileInfo.ItemFileName + ".cs,不是基础业务层类,因此无法更新或新增"); result = null; } else { CodeConfigHelper codeConfigHelper = new CodeConfigHelper(objSelectFileInfo.CodeConfigPath); if (!codeConfigHelper.LoadCodeConfigXml()) { result = null; } else { BusinessNodeInfo business = codeConfigHelper.GetBusiness(itemPathEntityName); if (business == null) { if (MessageBox.Show(itemPathEntityName + "实体未配置业务XML?是否配置吗?", "", MessageBoxButtons.OKCancel) != DialogResult.OK) { result = null; } else { Dictionary <string, BusinessNodeInfo> dictionary = new Dictionary <string, BusinessNodeInfo>(); BusinessNodeInfo readFileBusinessNodeInfo = CodeConfigHelper.GetReadFileBusinessNodeInfo(itemPathEntityName, objSelectFileInfo.ProjectPath); if (readFileBusinessNodeInfo == null) { MessageBox.Show(objSelectFileInfo.ItemFileName + ".cs,不是基础业务层类,因此无法配置XML"); result = null; } else { dictionary.Add(readFileBusinessNodeInfo.TableName, readFileBusinessNodeInfo); AKeyAddCodeConfig aKeyAddCodeConfig = new AKeyAddCodeConfig(objSelectFileInfo, dictionary); aKeyAddCodeConfig.Show(); result = null; } } } else { result = business; } } } } return(result); }
public TableRuleSchema CreateItemTableRuleSchema(SelectFileInfo objSelectFileInfo) { TableRuleSchema result; if (!objSelectFileInfo.IsExistsCodeConfig()) { result = null; } else { string itemPathEntityName = objSelectFileInfo.GetItemPathEntityName(); if (string.IsNullOrWhiteSpace(itemPathEntityName)) { MessageBox.Show(objSelectFileInfo.ItemFileName + ".cs,不是基础业务层类,因此无法更新或新增"); result = null; } else { CodeConfigHelper codeConfigHelper = new CodeConfigHelper(objSelectFileInfo.CodeConfigPath); if (!codeConfigHelper.LoadCodeConfigXml()) { result = null; } else { BusinessNodeInfo business = codeConfigHelper.GetBusiness(itemPathEntityName); if (business == null) { if (MessageBox.Show(itemPathEntityName + "实体未配置业务XML?是否配置吗?", "", MessageBoxButtons.OKCancel) != DialogResult.OK) { result = null; } else { Dictionary <string, BusinessNodeInfo> dictionary = new Dictionary <string, BusinessNodeInfo>(); BusinessNodeInfo readFileBusinessNodeInfo = CodeConfigHelper.GetReadFileBusinessNodeInfo(itemPathEntityName, objSelectFileInfo.ProjectPath); if (readFileBusinessNodeInfo == null) { MessageBox.Show(objSelectFileInfo.ItemFileName + ".cs,不是基础业务层类,因此无法配置XML"); result = null; } else { dictionary.Add(readFileBusinessNodeInfo.TableName, readFileBusinessNodeInfo); AKeyAddCodeConfig aKeyAddCodeConfig = new AKeyAddCodeConfig(objSelectFileInfo, dictionary); aKeyAddCodeConfig.Show(); result = null; } } } else { string schemaName = ""; string connectionString = codeConfigHelper.GetConnectionString(business.ConnectionKey, out schemaName); if (string.IsNullOrWhiteSpace(connectionString)) { if (MessageBox.Show("连接串键值(" + business.ConnectionKey + ")不存在,要配置连接吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK) { ConnectConfigFrom connectConfigFrom = new ConnectConfigFrom(objSelectFileInfo); connectConfigFrom.Show(); } result = null; } else { string tableName = business.TableName; try { TableRuleSchema tableRuleSchema = SqlSchemaHelper.GetAllRuleTables(schemaName, connectionString, true).FirstOrDefault((TableRuleSchema s) => s.TableName == tableName); if (tableRuleSchema == null) { MessageBox.Show("数据库找不到此:" + tableName + ",请检查配置是否正确"); result = null; } else { CodeConfigHelper.BusinessNodeToTableRuleSchema(business, tableRuleSchema); tableRuleSchema.Columns = SqlSchemaHelper.GetTableRuleColumnsSchema(connectionString, schemaName, tableRuleSchema.TableName, codeConfigHelper); result = tableRuleSchema; } } catch (Exception ex) { MessageBox.Show("更新代码出现异常,异常错误:" + ex.ToString()); result = null; } } } } } } return(result); }
private void AddCodeConfigItem_Click(object commandBarControl, ref bool handled, ref bool cancelDefault) { try { SelectFileInfo selectFileInfo = this.GetSelectFileInfo(); if (selectFileInfo == null) { return; } if (!selectFileInfo.IsExistsCodeConfig()) { handled = true; return; } CodeConfigHelper codeConfigHelper = new CodeConfigHelper(selectFileInfo.CodeConfigPath); if (!codeConfigHelper.LoadCodeConfigXml()) { return; } if (!Directory.Exists(selectFileInfo.ProjectPath + "\\DataAccess") || !Directory.Exists(selectFileInfo.ProjectPath + "\\Business") || !Directory.Exists(selectFileInfo.ProjectPath + "\\DataEntity")) { DialogResult dialogResult = MessageBox.Show("业务层不存在,要新增业务层吗?", "", MessageBoxButtons.OKCancel); if (dialogResult == DialogResult.OK) { SqlRuleCodeForm sqlRuleCodeForm = new SqlRuleCodeForm(selectFileInfo); sqlRuleCodeForm.Show(); } handled = true; return; } string[] files = Directory.GetFiles(selectFileInfo.ProjectPath + "\\DataAccess", "Da*.cs"); string[] files2 = Directory.GetFiles(selectFileInfo.ProjectPath + "\\Business", "Biz*.cs"); string[] files3 = Directory.GetFiles(selectFileInfo.ProjectPath + "\\DataEntity", "*.cs"); if (files.Count <string>() <= 0 || files2.Count <string>() <= 0 || files3.Count <string>() <= 0) { DialogResult dialogResult = MessageBox.Show("业务层不存在,要新增业务层吗?", "", MessageBoxButtons.OKCancel); if (dialogResult == DialogResult.OK) { SqlRuleCodeForm sqlRuleCodeForm = new SqlRuleCodeForm(selectFileInfo); sqlRuleCodeForm.Show(); } handled = true; return; } Dictionary <string, BusinessNodeInfo> dictionary = new Dictionary <string, BusinessNodeInfo>(); List <BusinessNodeInfo> business = codeConfigHelper.GetBusiness(); string[] array = files3; for (int i = 0; i < array.Length; i++) { string path = array[i]; string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path); string value = Path.Combine(selectFileInfo.ProjectPath, "DataAccess", "Da" + fileNameWithoutExtension + ".cs"); string value2 = Path.Combine(selectFileInfo.ProjectPath, "Business", "Biz" + fileNameWithoutExtension + ".cs"); if (files.Contains(value) && files2.Contains(value2)) { BusinessNodeInfo objBusinessNodeInfo = CodeConfigHelper.GetReadFileBusinessNodeInfo(fileNameWithoutExtension, selectFileInfo.ProjectPath); if (objBusinessNodeInfo != null) { BusinessNodeInfo businessNodeInfo = business.FirstOrDefault((BusinessNodeInfo s) => s.TableName == objBusinessNodeInfo.TableName); if (businessNodeInfo == null) { dictionary.Add(objBusinessNodeInfo.TableName, objBusinessNodeInfo); } else { businessNodeInfo.ConnectionKeyOrConnectionString = objBusinessNodeInfo.ConnectionKeyOrConnectionString; businessNodeInfo.LogModuleType = objBusinessNodeInfo.LogModuleType; businessNodeInfo.IsMongoDB = objBusinessNodeInfo.IsMongoDB; dictionary.Add(businessNodeInfo.TableName, businessNodeInfo); } } } } AKeyAddCodeConfig aKeyAddCodeConfig = new AKeyAddCodeConfig(selectFileInfo, dictionary); aKeyAddCodeConfig.Show(); handled = true; } catch (Exception ex) { MessageBox.Show("一键生成配置:" + ex.Message); } handled = true; }