public virtual string Remove() { DynamicJson dj = GetParam(); string resJson = string.Empty; string primaryKey = "Id"; try { JMI jmi = GetJMI(dj); using (DBAccessor dba = DBAccessor.Instance(Dbs.Get(jmi.DbsName))) { string condition = string.Empty; string sql = string.Empty; string tableName = TableName(jmi.DtoType); IList <string> cols = new List <string>(); if (GetPrimaryKey(jmi.DtoType).Count() > 0) { primaryKey = GetPrimaryKey(jmi.DtoType).FirstOrDefault().Name; } DbParameter[] paras = BuildParameter(jmi.DtoType, dba, dj, ref cols); int rows = dba.ExecuteCommand(string.Format("delete from {0} where {1}=:{1}", tableName, primaryKey), dba.CreateDbParameter(primaryKey, dj.Get(primaryKey)), false); if (rows > 0) { resJson = new { result = 1 } } .ToJson(); }
public virtual string Save() { try { DynamicJson dj = GetParam(); JMI jmi = GetJMI(dj); if (!dj.IsList && !dj.GetStr(JModelNo.AccessSaveListKey).IsNullOrEmpty()) { dj = dj.Get(JModelNo.AccessSaveListKey).ToJson().ToDynamicJson(); if (!jmi.TBCode.IsNullOrWhiteSpace()) { foreach (DynamicJson djItem in dj) { djItem.Set(JModelNo.AccessTableKey, jmi.TBCode); } } } using (DBAccessor dba = DBAccessor.Instance(Dbs.Get(jmi.DbsName))) { return(OnSave(dj, dba)); } } catch (Exception ex) { return(Loger.Log(Assembly.GetExecutingAssembly().FullName, MethodBase.GetCurrentMethod().FullName(), ex)); } }
/// <summary> /// 获取postData中操作的目标模型定义 /// </summary> /// <param name="dj"></param> /// <returns></returns> public JMI GetJMI(DynamicJson dj) { JMI jmi = new JMI(); if (dj.IsList && dj.GetStr(JModelNo.AccessTableKey).IsNullOrWhiteSpace()) { dj = (dj as dynamic)[0]; } if (dj.GetStr(JModelNo.AccessTableKey) != null && dj.GetStr(JModelNo.AccessTableKey).Length > 0) { jmi = JModelList.Models[dj.GetStr(JModelNo.AccessTableKey).ToUpper()]; } if (!dj.GetStr(JModelNo.AccessDbsKey).IsNullOrEmpty()) { jmi.DbsName = dj.GetStr(JModelNo.AccessDbsKey); } if (!dj.GetStr(JModelNo.AccessProcKey).IsNullOrEmpty()) { jmi.ProcName = dj.GetStr(JModelNo.AccessProcKey); } if (!dj.GetStr(JModelNo.AccessContextKey).IsNullOrEmpty()) { jmi.Context = dj.GetStr(JModelNo.AccessContextKey); } if (!dj.GetStr(JModelNo.AccessParaKey).IsNullOrEmpty()) { jmi.Paras = dj.Get(JModelNo.AccessParaKey).ToJson(); } if (!dj.GetStr(JModelNo.AccessBlockQueryKey).IsNullOrEmpty()) { jmi.BlockQueryCode = dj.GetStr(JModelNo.AccessBlockQueryKey); } return(jmi); }
/// <summary> /// 逻辑删除 post 数据格式类似为 { primaryKey: 1,2 } /// </summary> /// <returns></returns> public string Delete() { string json = GetPostData(); DynamicJson dj = GetParam(); JMI jmi = GetJMI(dj); if (!dj.IsList && !dj.GetStr(JModelNo.AccessSaveListKey).IsNullOrEmpty()) { dj = dj.Get(JModelNo.AccessSaveListKey).ToJson().ToDynamicJson(); if (!jmi.TBCode.IsNullOrWhiteSpace()) { foreach (DynamicJson djItem in dj) { djItem.Set(JModelNo.AccessTableKey, jmi.TBCode); } } } using (DBAccessor dba = DBAccessor.Instance(Dbs.Get(jmi.DbsName))) { return(OnSave(dj, dba, true)); } }