/// <summary> /// by 王延领 /// date:2017-11-20 /// </summary> /// <param name="_dt"></param> /// <param name="_strNamespace">命名空间</param> /// <param name="_dataContext">数据库操作上线文</param> public CreateDomain(DataTable _dt, string _strNamespace, string _dataContext) { strNamespace = _strNamespace; dataContext = _dataContext; dt = _dt; dtName = dt.TableName; modeName = dtName + "Model"; #region 生成的查询条件 foreach (DataRow dr in dt.Rows) { string dataType = dr["DataType"].ToString(); if (dr["IsQuery"].ToString().ToLower() == "true" && dataType != "datetime") { string columuName = dr["name"].ToString(); string _columuName = columuName.Substring(0, 1).ToLower() + columuName.Substring(1); checkString.AppendFormat("{0} {1},", CreateHelper.GetCsType(dataType), _columuName); query.AppendFormat(" if ({0}.HasValue)", _columuName); query.AppendLine(); query.AppendFormat(" sql += string.Format(\" and {0} = '{1}'\", {2}.Value);", columuName, "{0}", _columuName); query.AppendLine(); } else if (dr["IsQuery"].ToString().ToLower() == "true" && dataType == "datetime") { string columuName = dr["name"].ToString(); checkString.Append(" DateTime? sd, DateTime? ed,"); query.AppendLine(" if (!Convert.ToDateTime(sd).IsEmpty())"); query.AppendFormat(" sql += string.Format(\" And {0}>'{1}'\", Convert.ToDateTime(sd).ToString(\"yyyy-MM-dd 0:00\"));", columuName, "{0}"); query.AppendLine(); query.AppendLine(" if (!Convert.ToDateTime(ed).IsEmpty())"); query.AppendFormat(" sql += string.Format(\" And {0}<'{1}'\", Convert.ToDateTime(ed).ToString(\"yyyy-MM-dd 23:59:59\"));", columuName, "{0}"); query.AppendLine(); } #endregion } }
/// <summary> /// /// by 王延领 /// date:2017-11-20 /// </summary> /// <param name="_dt"></param> /// <param name="_strNamespace">命名空间</param> /// <param name="_projectName">项目模块名称</param> /// <param name="_functionNme">功能名称</param> public CreateControllers(DataTable _dt, string _strNamespace, string _projectName, string _functionNme) { strNamespace = _strNamespace; projectName = _projectName; functionNme = _functionNme; dt = _dt; //表名 dtName = dt.TableName; //表名(首字母小写) _dtName = dtName.Substring(0, 1).ToLower() + dtName.Substring(1); modelName = dtName + "Model"; #region 遍历datatable 可读性有点低哈,为了实现设计代码的时候就没做太多设计 foreach (DataRow dr in dt.Rows) { string defaultVal = dr["DefaultVal"].ToString(); string dataType = dr["DataType"].ToString(); #region 查询条件 if (dr["IsQuery"].ToString().ToLower() == "true" && dataType != "datetime") { string columuName = dr["name"].ToString(); string _columuName = columuName.Substring(0, 1).ToLower() + columuName.Substring(1); query.AppendFormat("{0},", _columuName); checkString.AppendFormat("{0} {1},", CreateHelper.GetCsType(dataType), _columuName); } else if (dr["IsQuery"].ToString().ToLower() == "true" && dataType == "datetime") { query.Append("sd,ed,"); checkString.Append(" DateTime? sd, DateTime? ed,"); } #endregion #region 初始化 if (!string.IsNullOrEmpty(defaultVal)) { string name = dr["name"].ToString(); if (defaultVal == "当前时间") { defaultValue.AppendFormat(" model.{0} = DateTime.Now;", name); } else if (defaultVal == "登入人") { defaultValue.AppendFormat(" model.{0} = Platform.Core.PlatformContext.CurrentUser.UserName;", name); } defaultValue.AppendLine(); } #endregion } #endregion }
public bool setModel() { try { StringBuilder sb = new StringBuilder(); string tbname = dt.TableName; sb.AppendLine("using System;"); sb.AppendLine("using System.Web.Mvc;"); sb.AppendLine("using System.ComponentModel;"); sb.AppendLine("using RTSafe.Platform.Core;"); sb.AppendLine("using System.ComponentModel.DataAnnotations;"); sb.AppendLine("using RTSafe.Platform.KMvcControl.Attributes;"); sb.AppendLine(); sb.AppendFormat("namespace {0}.Models", nameSpace); sb.AppendLine(); sb.AppendLine("{"); sb.AppendFormat(" public class {0}Model : MapperModel", tbname); sb.AppendLine(); sb.AppendLine(" {"); if (dt != null || dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { string name = dr["name"].ToString(); sb.AppendLine(); sb.AppendFormat(" [DisplayName(\"{0}\")]", dr["DisplayName"].ToString()); sb.AppendLine(); string l = dr["Length"].ToString(); string dtyp = dr["DataType"].ToString(); bool n = (dtyp == "nvarchar" || dtyp == "varchar" || dtyp == "char" || dtyp == "nchar"); if (dr["IsNull"].ToString().ToLower() == "false") { sb.AppendLine(" [Required(ErrorMessage = \"{0}不能为空\")] "); if (n) { sb.AppendFormat(" [StringLength({0},MinimumLength = 1, ErrorMessage =\"{{0}}长度在{{2}}-{{1}}之间\")]", l); sb.AppendLine(); } } else if (dr["IsNull"].ToString().ToLower() != "false" && n) { sb.AppendFormat(" [StringLength({0}, ErrorMessage = \"{1}长度不可超出{0}\")]", l, "{0}"); sb.AppendLine(); } if (dr["HiddenInput"].ToString().ToLower() != "true" || dt.Rows.IndexOf(dr) == 0) { sb.AppendLine(" [HiddenInput(DisplayValue=false)]"); } if (name == "LineID") { sb.AppendLine(" [SelectList(\"/Inspect/GetLine?all=0\","); sb.AppendLine(" HttpVerbs.Post,"); sb.AppendLine(" DataValueField = \"LineID\","); sb.AppendLine(" DataTextField = \"Name\","); sb.AppendLine(" DataType = \"DropDownList\")]"); } else if (name == "SegmentID") { sb.AppendLine(" [SelectList(\"/Inspect/GetSegment?all=0\","); sb.AppendLine(" HttpVerbs.Post,"); sb.AppendLine(" CascadeFrom = \"LineID\","); sb.AppendLine(" DataValueField = \"SegmentID\","); sb.AppendLine(" DataTextField = \"Name\","); sb.AppendFormat(" Data = {0}\"function(){{", "@"); sb.AppendLine(); sb.AppendLine(" return { lineId: $(\"\"#LineID\"\").val() };"); sb.AppendLine(" }\","); sb.AppendLine(" DataType = \"DropDownList\")]"); } else if (name == "SiteID") { sb.AppendLine(" [SelectList(\"/Inspect/GetSegment?all=0\","); sb.AppendLine(" HttpVerbs.Post,"); sb.AppendLine(" CascadeFrom = \"SegmentID\","); sb.AppendLine(" DataValueField = \"SiteID\","); sb.AppendLine(" DataTextField = \"Name\","); sb.AppendFormat(" Data = {0}\"function(){{", "@"); sb.AppendLine(); sb.AppendLine(" return { segmentID: $(\"\"#SegmentID\"\").val() };"); sb.AppendLine(" }\","); sb.AppendLine(" DataType = \"DropDownList\")]"); } else if (!string.IsNullOrEmpty(dr["SelectList"].ToString()) && string.IsNullOrEmpty(dr["SelectData"].ToString())) { sb.AppendFormat(" [SelectList(\"{0}\",HttpVerbs.Post,DataValueField = \"{1}\",DataTextField = \"Name\",DataType = \"DropDownList\")]", dr["SelectList"].ToString(), name); sb.AppendLine(); } else if (!string.IsNullOrEmpty(dr["SelectData"].ToString()) && !string.IsNullOrEmpty(dr["SelectList"].ToString())) { string[] SelectData = dr["SelectData"].ToString().Split(':'); sb.AppendFormat(" [SelectList(\"{0}\",HttpVerbs.Post, CascadeFrom = \"{4}\", DataValueField = \"{1}\",DataTextField = \"Name\",Data ={2}\"function(){{return {{ {3}: $(\"\"#{4}\"\").val() }}; }}\",DataType = \"DropDownList\")]", dr["SelectList"].ToString(), name, "@", SelectData[0], SelectData[1]); sb.AppendLine(); } if (dr["DataType"].ToString() == "datetime") { sb.AppendLine(" [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = \"{0:yyyy-MM-dd}\")]"); } string da = dr["DefaultAttribute"].ToString(); if (!string.IsNullOrEmpty(da)) { string[] daArray = da.Split('|'); foreach (string das in daArray) { if (string.IsNullOrEmpty(das)) { break; } sb.AppendFormat(" [{0}]", das); sb.AppendLine(); } } string regular = dr["Regular"].ToString(); if (!string.IsNullOrEmpty(regular)) { sb.AppendFormat(" [RegularExpression({0}\"{1}\")]", "@", regular); sb.AppendLine(); } sb.AppendFormat(" public {0} {1} {{ get; set; }}", CreateHelper.GetCsType(dr["DataType"].ToString()), name); sb.AppendLine(); } } sb.AppendLine(" }"); sb.AppendLine("}"); File.WriteAllText(CreateHelper.getPath(tbname) + "//Models" + "//" + tbname + "Model.cs", sb.ToString()); } catch (Exception ex) { return(false); } return(true); }