Exemple #1
0
 /// <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
        }
Exemple #3
0
        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);
        }