Beispiel #1
0
 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));
     }
 }
Beispiel #2
0
        /// <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));
            }
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dba"></param>
        /// <param name="dynamicJson">以下划线开头的key不会构建参数</param>
        /// <returns></returns>
        public DbParameter[] BuildParameter(DBAccessor dba, DynamicJson dynamicJson)
        {
            IList <DbParameter> paras = new List <DbParameter>();

            foreach (var columnName in dynamicJson.Keys)
            {
                try
                {
                    bool isDate = false;
                    if (dynamicJson.GetStr(columnName) != null && columnName.Contains("Date"))
                    {
                        isDate = true;
                    }
                    if (columnName.StartsWith("_"))
                    {
                        continue;
                    }

                    if (dynamicJson.ContainsKey(columnName))
                    {
                        var dp = dba.CreateDbParameter(columnName, isDate ? dynamicJson.Get(columnName).Convert <DateTime>() : dynamicJson.Get(columnName));
                        if (columnName == "rs_1" && dp.GetType().FullName.Contains("Oracle"))
                        {
                            (dp as OracleParameter).OracleDbType = OracleDbType.RefCursor;
                            dp.Direction = ParameterDirection.Output;
                        }
                        paras.Add(dp);
                    }
                }
                catch (Exception ex)
                {
                    Loger.Log(Assembly.GetExecutingAssembly().FullName, MethodBase.GetCurrentMethod().FullName() + "\r\n列名->\r\n" + columnName, ex);
                }
            }
            return(paras.ToArray());
        }
Beispiel #4
0
        /// <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);
        }