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))); }
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))); }