Example #1
0
        public ActionResult Save()
        {
            var result          = QWF.Framework.Web.ResultWebData.Default();
            var curUser         = QWF.Framework.Web.UserContext.GetCurrentInfo();
            var id              = this.Request["id"].SafeConvert().ToStr();
            var tableId         = this.Request["tableId"].SafeConvert().ToStr();
            var tableCode       = this.Request["tableCode"].SafeConvert().ToStr();
            var code            = this.Request["code"].SafeConvert().ToStr();
            var name            = this.Request["name"].SafeConvert().ToStr();
            var fieldType       = this.Request["fieldType"].SafeConvert().ToStr();
            var fieldTypeLength = this.Request["fieldTypeLength"].SafeConvert().ToInt32(0);
            var remaks          = this.Request["remarks"].SafeConvert().ToStr();
            var create          = Request["create"].SafeConvert().ToBool();
            var edit            = Request["edit"].SafeConvert().ToBool();
            var isNotNull       = Request["isNotNull"].SafeConvert().ToBool();
            var onlyKey         = Request["onlyKey"].SafeConvert().ToBool();
            var isVirtual       = this.Request["isVirtual"].SafeConvert().ToBool();

            using (var db = DbAccess.DbCRMContext.Create())
            {
                if (tableId.Length == 0 && tableCode.Length == 0)
                {
                    throw new UIValidateException("请选择所属表。");
                }

                if (id.Length == 0 && code.Length == 0)
                {
                    throw new UIValidateException("请填写字段名。");
                }

                if (name.Length == 0)
                {
                    throw new UIValidateException("请填写字段描述。");
                }

                var ado = ADO.ADO_Helper.Create();

                if (id.Length == 0)
                {
                    if (!code.StrValidatorHelper().IsDbNameCode())
                    {
                        throw new UIValidateException("字段名格式不正确,只能是3-128位字母、数字或下划线组合,不能以数字开头。");
                    }

                    if (create && ado.ExistsField(code, name))
                    {
                        throw new QWF.Framework.GlobalException.UIValidateException("字段【{0}.{1}】已经物理存在,请更换名称。", tableCode, code);
                    }

                    var dbModel = db.T_QCRM_Fields.Where(w => w.TableCode == tableCode && w.Code == code && w.Deleted == 0).FirstOrDefault();
                    if (dbModel != null)
                    {
                        throw new UIValidateException("字段【{0}.{1}】已经存在,请换一个字段名!", tableCode, code);
                    }

                    dbModel                 = new DbAccess.T_QCRM_Fields();
                    dbModel.TableCode       = tableCode;
                    dbModel.Code            = code;
                    dbModel.Name            = name;
                    dbModel.FieldType       = fieldType;
                    dbModel.FieldTypeLength = fieldTypeLength;
                    dbModel.Remarks         = remaks;
                    dbModel.CreateUser      = curUser.CurrentUserCode;
                    dbModel.CreateTime      = DateTime.Now;
                    dbModel.OnlyKey         = onlyKey ? 1 : 0;
                    dbModel.IsNotNull       = isNotNull ? 1 : 0;
                    dbModel.IsVirtual       = isVirtual ? 1 : 0;

                    db.T_QCRM_Fields.Add(dbModel);

                    //创建字段
                    if (create & !isVirtual)
                    {
                        ado.CreateField(tableCode, code, fieldType, fieldTypeLength);
                    }
                }
                else
                {
                    //编辑
                    var dbModel = db.T_QCRM_Fields.Where(w => w.TableCode == tableId && w.Code == id && w.Deleted == 0).FirstOrDefault();
                    if (dbModel == null)
                    {
                        throw new UIValidateException("字段【{0}.{1}】的数据记录不存在!", tableId, id);
                    }

                    dbModel.Name            = name;
                    dbModel.Remarks         = remaks.Trim();
                    dbModel.FieldTypeLength = fieldTypeLength;
                    dbModel.UpdateUser      = curUser.CurrentUserCode;
                    dbModel.UpdateTime      = DateTime.Now;
                    dbModel.OnlyKey         = onlyKey ? 1 : 0;
                    dbModel.IsNotNull       = isNotNull ? 1 : 0;
                    dbModel.IsVirtual       = isVirtual ? 1 : 0;

                    //编辑字段长度
                    var hidFieldType = this.Request["hidFieldType"].ToString();
                    if (edit && (hidFieldType == "text" || hidFieldType == "decimal"))
                    {
                        ado.AlterFieldLength(tableId, id, hidFieldType, fieldTypeLength);
                    }
                }

                db.SaveChanges();
            }

            return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(result)));
        }
Example #2
0
        public ActionResult Save()
        {
            var id          = this.Request["id"].SafeConvert().ToStr();
            var code        = this.Request["code"].SafeConvert().ToStr();
            var name        = this.Request["name"].SafeConvert().ToStr();
            var remaks      = this.Request["remarks"].SafeConvert().ToStr();
            var result      = QWF.Framework.Web.ResultWebData.Default();
            var create      = this.Request["create"].SafeConvert().ToBool();
            var deleteType  = this.Request["deleteType"].SafeConvert().ToInt32(0);
            var deleteField = this.Request["deleteField"].SafeConvert().ToStr();
            var deleteFlag  = this.Request["deleteFlag"].SafeConvert().ToStr();

            var curUser = QWF.Framework.Web.UserContext.GetCurrentInfo();

            using (var db = DbAccess.DbCRMContext.Create())
            {
                if (id.Length == 0 && code.Length == 0)
                {
                    throw new UIValidateException("请填写表名。");
                }

                if (name.Length == 0)
                {
                    throw new UIValidateException("请填写描述。");
                }

                if (deleteType == 1)
                {
                    if (deleteField.Length == 0)
                    {
                        throw new UIValidateException("请填写字段名。");
                    }

                    if (deleteFlag.Length == 0)
                    {
                        throw new UIValidateException("请填写正常标识。");
                    }
                }

                if (id.Length == 0)
                {
                    if (!code.StrValidatorHelper().IsDbNameCode())
                    {
                        throw new UIValidateException("表名格式不正确,只能3-128位字母、数字或下划线组合,不能以数字开头。");
                    }

                    var ado = ADO.ADO_Helper.Create();
                    if (create && ado.ExistsTable(code))
                    {
                        throw new UIValidateException("表名【{0}】已经物理存在,请更换表名。", code);
                    }

                    //新增
                    var dbModel = db.T_QCRM_Tables.Where(w => w.Code == code && w.Deleted == 0).FirstOrDefault();
                    if (dbModel != null)
                    {
                        throw new UIValidateException("表名【{0}】已经存在,请更换表名。", code);
                    }

                    dbModel             = new DbAccess.T_QCRM_Tables();
                    dbModel.Code        = code;
                    dbModel.Name        = name;
                    dbModel.Remarks     = remaks;
                    dbModel.CreateUser  = curUser.CurrentUserCode;
                    dbModel.CreateTime  = DateTime.Now;
                    dbModel.DeleteField = deleteField;
                    dbModel.DeleteFlag  = deleteFlag;
                    dbModel.DeleteType  = deleteType;

                    db.T_QCRM_Tables.Add(dbModel);

                    //创建表
                    if (create)
                    {
                        ado.CreateTable(code);

                        //这里需要添加一个默认字段
                        var fieldModel = new DbAccess.T_QCRM_Fields();
                        fieldModel.TableCode       = code;
                        fieldModel.Code            = "Id";
                        fieldModel.Name            = "ID";
                        fieldModel.Remarks         = "创建表默认字段,主键 GUID";
                        fieldModel.FieldType       = "text";
                        fieldModel.FieldTypeLength = 0;
                        fieldModel.CreateTime      = DateTime.Now;
                        fieldModel.CreateUser      = curUser.CurrentUserCode;
                        fieldModel.PK = 1;



                        db.T_QCRM_Fields.Add(fieldModel);
                    }
                }
                else
                {
                    //编辑
                    var dbModel = db.T_QCRM_Tables.Where(w => w.Code == id && w.Deleted == 0).FirstOrDefault();
                    if (dbModel == null)
                    {
                        throw new UIValidateException("表名【{0}】的数据记录不存在。", code);
                    }

                    dbModel.Name        = name;
                    dbModel.Remarks     = remaks.Trim();
                    dbModel.UpdateUser  = curUser.CurrentUserCode;
                    dbModel.UpdateTime  = DateTime.Now;
                    dbModel.DeleteField = deleteField;
                    dbModel.DeleteFlag  = deleteFlag;
                    dbModel.DeleteType  = deleteType;
                }

                db.SaveChanges();
            }

            return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(result)));
        }