/// <summary>
        /// DB资料非查询
        /// 自动识别sql中的参数,并从传入的参数集中找对应的参数,如果没有,则需补充自定义的参数定义
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="connstr"></param>
        /// <param name="sql"></param>
        /// <param name="param"></param>
        /// <returns></returns>
        protected virtual void NonQuery <T>(string connstr, string sql, params KeyValuePair <string, object>[] param) where T : ADBAccess, IResourceEntity
        {
            T dao = GetDao <T>(connstr, null);

            try
            {
                DBOParameterCollection      dbp = new DBOParameterCollection();
                Dictionary <string, object> _dp = _p.Domain(DomainKey.INPUT_PARAMETER);
                foreach (var v in param)
                {
                    if (!_dp.ContainsKey(v.Key))
                    {
                        _dp.Add(v.Key, v.Value);
                    }
                }

                if (!string.IsNullOrEmpty(sql))
                {
                    string regstr = "";
                    regstr = @"(?<=" + dao.ParameterFlagChar + @")[A-Za-z0-9_]+\d*";
                    string regexpress = @"(?isx)
                                (')                                                           #开始标记“<tag...>”
                                (?>                                                                  #分组构造,用来限定量词“*”修饰范围
                                \1  (?<Open>)                                                 #命名捕获组,遇到开始标记,入栈,Open计数加1
                                |\1  (?<-Open>)                                                   #狭义平衡组,遇到结束标记,出栈,Open计数减1
                                |[^']*                                                   #右侧不为开始或结束标记的任意字符
                                )
                                (?(Open)(?!))                                                        #判断是否还有'OPEN',有则说明不配对,什么都不匹配
                                \1                                                                #结束标记“</tag>”
                     ";
                    Regex  re         = new Regex(regstr);
                    string tmpsql     = "";
                    Regex  re2        = new Regex(regexpress);
                    tmpsql = sql;
                    foreach (Match m in re2.Matches(tmpsql))
                    {
                        tmpsql = tmpsql.Replace(m.Value, "#sp#");
                    }
                    foreach (System.Text.RegularExpressions.Match m in re.Matches(tmpsql))
                    {
                        if (_dp[m.ToString()] is byte[])
                        {
                            dbp.Add(m.ToString(), _dp[m.ToString()], System.Data.DbType.Binary);
                        }
                        else
                        {
                            dbp.Add(m.ToString(), _dp[m.ToString()]);
                        }
                    }
                }


                UnitDataCollection rtn = new UnitDataCollection();
                dao.ExecuteNoQuery(sql, dbp);
            }
            finally
            {
                dao.Close();
            }
        }
示例#2
0
        public override bool delete(string id)
        {
            var up = DB.NewDefaultDBUnitParameter<SqliteAccess>();

            BeginTrans();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'LoginInfo',
$where : {
		LoginID:{0}
}
}", id));
            var uid = re.QueryTable.RowLength > 0 ? ComFunc.nvl(re.QueryTable[0, "UID"]) : "";

            DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Delete',
$table : 'Map_LoginRole',
$where:{
        LoginUID:{0}
    }
}", uid));

            DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Delete',
$table : 'LoginInfo',
$where:{
        LoginID:{0}
    }
}", id));
            CommitTrans();
            SetRefreshCacheRoute($"/user/{id}");
            return true;
        }
示例#3
0
        public override object get(string no)
        {
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'FunctionInfo',
    $where:{
        FunctionNo:{0}
    }
}", no));

            var list = re.QueryData <FrameDLRObject>();

            if (list.Count() > 0)
            {
                dynamic t = list[0];
                return(new
                {
                    No = t.FunctionNo,
                    Name = t.FunctionName,
                    Level = t.FunctionLevel,
                    Url = t.Url,
                    IsMenu = t.IsMenu,
                    Remark = t.Remark
                });
            }
            else
            {
                return(null);
            }
        }
示例#4
0
        public override object get(string id)
        {
            var up = DB.NewDefaultDBUnitParameter<SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'LoginInfo',
$where : {
		LoginID:{0}
}
}", id));

            if (re.QueryTable.RowLength <= 0)
            {
                return null;
            }
            else
            {
                dynamic obj = re.QueryData<FrameDLRObject>()[0];
                return new
                {
                    uid=obj.UID,
                    id = obj.LoginID,
                    name = obj.LoginName,
                    remark = obj.remark
                };
            }
        }
示例#5
0
        public override object get(string id)
        {
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'RoleInfo',
    $where:{
        RoleUID:{0}
    }
}", id));

            var list = re.QueryData <FrameDLRObject>();

            if (list.Any())
            {
                dynamic t = list[0];
                return(new
                {
                    Id = t.RoleUID,
                    Name = t.RoleName,
                    Remark = t.Remark
                });
            }
            else
            {
                return(null);
            }
        }
示例#6
0
        public new List<FrameDLRObject> get()
        {
            var up = DB.NewDefaultDBUnitParameter<SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'LoginInfo',
}"));

            if (re.QueryTable.RowLength <= 0)
            {
                return null;
            }
            else
            {
                var l = from t in re.QueryData<FrameDLRObject>()
                        select new
                        {
                            uid = t.UID,
                            id = t.LoginID,
                            name = t.LoginName,
                            remark = t.remark
                        };
                return l.ToList();
            }
        }
示例#7
0
        object delete(LogicData arg)
        {
            var rtn = FrameDLRObject.CreateInstance(@"{
issuccess:true,
msg:'操作成功'
}");
            var no  = ComFunc.nvl(arg["no"]);

            BeginTrans();
            var up = DB.NewDBUnitParameter();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'FunctionInfo',
$where : {
		FunctionNo:{0}
}
}", no));

            if (re.QueryTable.RowLength <= 0)
            {
                rtn.issuccess = false;
                rtn.msg       = "待删除的功能不存在";
                return(rtn);
            }
            up.SetValue("no", no);
            DB.NonQuery <FunctionUnit>(up, "delete");

            CommitTrans();
            return(rtn);
        }
示例#8
0
        /// <summary>
        /// 执行sp
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="connstr"></param>
        /// <param name="spname"></param>
        /// <param name="isreturnds"></param>
        /// <param name="dbp"></param>
        /// <returns></returns>
        protected virtual UnitDataCollection ExcuteSP <T>(string connstr, string spname, bool isreturnds, DBOParameterCollection dbp) where T : ADBAccess, IResourceEntity
        {
            T dao = GetDao <T>(connstr, null);

            try
            {
                UnitDataCollection rtn   = new UnitDataCollection();
                DBDataCollection   dbrtn = dao.ExcuteProcedure(ComFunc.nvl(spname), isreturnds, ref dbp);
                if (dbrtn.IsSuccess)
                {
                    foreach (string s in dbrtn.Keys)
                    {
                        if (dbrtn[s] is DataSetStd)
                        {
                            rtn.QueryDatas = dbrtn.ReturnDataSet;
                        }
                        else
                        {
                            rtn.SetValue(s, dbrtn[s]);
                        }
                    }
                }
                return(rtn);
            }
            finally
            {
                dao.Close();
            }
        }
示例#9
0
            /// <summary>
            /// 标准化DB执行操作
            /// </summary>
            /// <param name="p"></param>
            /// <param name="express"></param>
            /// <returns></returns>
            public virtual UnitDataCollection Excute(UnitParameter p, DBExpress express)
            {
                UnitDataCollection rtn = new UnitDataCollection();

                if (express != null)
                {
                    p.SetValue("__json__", express);
                    if (p.Dao is ADBAccess)
                    {
                        if (express.CurrentAct == DBExpress.ActType.Query)
                        {
                            rtn = Query <JsonExpressUnit>(p, "");
                        }
                        else if (express.CurrentAct == DBExpress.ActType.QueryByPage)
                        {
                            rtn = QueryByPage <JsonExpressUnit>(p, "");
                        }
                        else
                        {
                            NonQuery <JsonExpressUnit>(p, "");
                        }
                    }
                    else if (p.Dao is MongoAccess26)
                    {
                        var result = ((MongoAccess26)p.Dao).Excute(express);
                        if (express.CurrentAct == DBExpress.ActType.Query)
                        {
                            rtn.MongoListData = (List <FrameDLRObject>)result;
                        }
                    }
                }
                return(rtn);
            }
        public string ConvertTo(object obj)
        {
            if (obj == null)
            {
                return("");
            }

            UnitDataCollection udc = null;

            if (obj is UnitDataCollection)
            {
                udc = (UnitDataCollection)obj;
            }
            else
            {
                throw new Exception("QueryByPage2Json无法转化" + obj.GetType().FullName + "类型数据!");
            }
            FrameDLRObject rtn = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);

            if (udc.QueryTable != null)
            {
                rtn.SetValue("page", udc.CurrentPage + "");
                rtn.SetValue("total", udc.TotalRow + "");

                rtn.SetValue("rows", udc.QueryTable.Rows);
            }

            return(rtn.ToJSONString());
        }
示例#11
0
        public object get(dynamic parent_info)
        {
            object rtn = null;

            //该功能不需要缓存
            SetCacheEnable(false);
            if (IsValidBy("缺少参数", () => parent_info != null) &&
                IsValidBy("缺少参数", () => !(parent_info is FrameDLRObject)))
            {
                var loginuid          = parent_info.uid;
                var up                = DB.NewDefaultDBUnitParameter <SqliteAccess>();
                UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	'a.FunctionNo':true,
	'a.FunctionName':true,
	'a.FunctionLevel':true,
	'a.IsMenu':true,
	'a.ParentNo':true,
	'a.Url':true,
	$table: {
		FunctionInfo: 'a',
		Map_RoleFunction: {
			$as: 'b',
			$join: {
				$by: 'a',
				$on: {
					'b.FunctionNo': '#sql:a.FunctionNo'
				}
			}
		},
		Map_LoginRole:{
			$as: 'c',
			$join: {
				$by: 'b',
				$on: {
					'c.RoleUID': '#sql:b.RoleUID'
				}
			}
		}
	},
	$where: {
		'c.LoginUID': {0},
        'a.IsMenu':{1}
	}
}", loginuid, "1"));

                var list = re.QueryData <FrameDLRObject>();

                /*var level0 = from t in list
                 *           where t.FunctionLevel == 0
                 *           select new { No = t.FunctionNo, Name = t.FunctionName, Level = t.FunctionLevel, Url = t.Url, IsMenu = t.IsMenu, Sub = BuildFunctionTree(t, list) };
                 */

                rtn = list.ToList();
            }

            return(rtn);
        }
示例#12
0
            /// <summary>
            /// 直接调用DB驱动执行大数据量新增操作
            /// 并非所有的数据库引擎支持大数据量的新增操作,具体请看相关操作说明
            /// </summary>
            /// <param name="p"></param>
            /// <param name="toTable"></param>
            /// <param name="data"></param>
            /// <returns></returns>
            public virtual UnitDataCollection BulkInsert(UnitParameter p, string toTable, object data)
            {
                var rtn = new UnitDataCollection();

                if (p.Dao != null && p.Dao is ADBAccess)
                {
                    ((ADBAccess)p.Dao).Insert(data, toTable);
                }
                return(rtn);
            }
示例#13
0
        public string ConvertTo(object obj)
        {
            if (obj == null)
            {
                return("");
            }

            string             rtn = "";
            UnitDataCollection udc = null;

            if (obj is UnitDataCollection)
            {
                udc = (UnitDataCollection)obj;
            }
            else
            {
                throw new Exception("QueryByPage2Json无法转化" + obj.GetType().FullName + "类型数据!");
            }

            if (udc.QueryTable != null)
            {
                JsonObjectCollection jsonrtn = new JsonObjectCollection();
                //jsonrtn.Add(new JsonStringValue("Count_Of_OnePage", udc.Count_Of_OnePage + ""));
                jsonrtn.Add(new JsonStringValue("page", udc.CurrentPage + ""));
                //jsonrtn.Add(new JsonStringValue("total", udc.TotalPage + ""));
                jsonrtn.Add(new JsonStringValue("total", udc.TotalRow + ""));

                DataTableStd        dts     = udc.QueryTable;
                JsonArrayCollection jsonobj = new JsonArrayCollection("rows");
                for (int j = 0; j < dts.RowLength; j++)
                {
                    JsonObjectCollection jac = new JsonObjectCollection();
                    foreach (string colname in dts.ColumnNames)
                    {
                        if (dts.ColumnDateType(colname).FullName == typeof(DateTime).FullName)
                        {
                            DateTimeStd dtime = DateTimeStd.ParseStd(dts[j, colname]);
                            jac.Add(new JsonStringValue(colname, dtime != null ? dtime.Value.ToString("yyyy/MM/dd HH:mm:ss") : ""));
                        }
                        else
                        {
                            jac.Add(new JsonStringValue(colname, ComFunc.nvl(dts[j, colname])));
                        }
                    }
                    jsonobj.Add(jac);
                }
                jsonrtn.Add(jsonobj);



                rtn = jsonrtn.ToString();
            }

            return(rtn);
        }
示例#14
0
            public override UnitDataCollection QueryByPage <T>(UnitParameter p, string actionflag)
            {
                InitUPPage(p);
                UnitDataCollection rtn = base.QueryByPage <T>(p, actionflag);

                _logic.CallContext_DataCollection.WebData.SetValue(Count_per_Page_Key, rtn.Count_Of_OnePage);
                _logic.CallContext_DataCollection.WebData.SetValue(CurrentPage_Key, rtn.CurrentPage);
                _logic.CallContext_DataCollection.WebData.SetValue(Total_Page_Key, rtn.TotalPage);
                _logic.CallContext_DataCollection.WebData.SetValue(Total_Row_Key, rtn.TotalRow);
                return(rtn);
            }
示例#15
0
    public void Save(UnitDataCollection unitDataCollection)
    {
        string path       = Application.dataPath + "/Resources/Data/Characters/UnitData.xml";
        var    serializer = new XmlSerializer(typeof(UnitDataCollection));

        using (var stream = new FileStream(path, FileMode.Create))
        {
            serializer.Serialize(stream, unitDataCollection);
            Debug.Log("Saved XML to " + path);
        }
    }
示例#16
0
    public void LoadUnitData()
    {
        listUnitData.Clear();
        TextAsset textAsset  = Resources.Load("Data/Characters/UnitData") as TextAsset;
        var       serializer = new System.Xml.Serialization.XmlSerializer(typeof(UnitDataCollection));

        using (var reader = new System.IO.StringReader(textAsset.text))
        {
            this.unitDataCollection = (UnitDataCollection)serializer.Deserialize(reader);
        }
        listUnitData = unitDataCollection.ListUnitsData;
        totalUnit    = listUnitData.Count;
    }
示例#17
0
        public override object post()
        {
            object rtn      = null;
            var    up       = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            string no       = ComFunc.nvl(PostDataD.no);
            string name     = ComFunc.nvl(PostDataD.name);
            int    level    = PostDataD.level;
            string url      = ComFunc.nvl(PostDataD.url);
            string parentno = ComFunc.nvl(PostDataD.parentno);
            string ismenu   = ComFunc.nvl(PostDataD.ismenu);
            string remark   = ComFunc.nvl(PostDataD.remark);

            BeginTrans();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'FunctionInfo',
	$where: {
        $or:[
            FunctionNo: {0},
            FunctionName:{1}
        ]
		
	}
}", no, name));

            if (IsValidBy("功能已存在", () => re.QueryTable.RowLength <= 0))
            {
                DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Insert',
$table : 'FunctionInfo',
FunctionNo:{0},
FunctionName:{1},
ParentNo:{2},
Url:{3},
IsMenu:{4},
Remark:{5},
CreateTime:{6},
FunctionLevel:{7}
}", no, name, parentno, url, (ismenu == "true" || ismenu == "1") ? 1 : 0, remark, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), level));

                rtn = new
                {
                    no = no
                };
            }

            return(rtn);
        }
示例#18
0
        public new List <FrameDLRObject> get()
        {
            SetCacheEnable(false);
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'RoleInfo',
}"));

            var list   = re.QueryData <FrameDLRObject>();
            var level0 = from t in list
                         select new { Id = t.RoleUID, Name = t.RoleName, Remark = t.Remark };


            return(level0.ToList());
        }
    /// <summary>
    /// Awake this instance and destroy duplicates.
    /// </summary>
    void Awake()
    {
        print("UnitDataManager.Awake()");
        if (_instance == null)
        {
            string path = Path.Combine(Application.streamingAssetsPath, UNIT_DATA_FILE);
            string data = File.ReadAllText(path);

            GlobalUnitDataCollection = JsonConvert.DeserializeObject <UnitDataCollection> (data);
            _instance = this;
        }
        else if (_instance != this)
        {
            Destroy(this.gameObject);
        }
        DontDestroyOnLoad(this.gameObject);
    }
示例#20
0
        public new List <FrameDLRObject> get()
        {
            SetCacheEnable(false);
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'FunctionInfo',
}"));

            var list   = re.QueryData <FrameDLRObject>();
            var level0 = from t in list
                         where t.FunctionLevel == 0
                         select new { No = t.FunctionNo, Name = t.FunctionName, Level = t.FunctionLevel, Url = t.Url, IsMenu = t.IsMenu, Remark = t.Remark, Sub = BuildFunctionTree4GetList(t, list) };


            return(level0.ToList());
        }
示例#21
0
        public new object patch(string no)
        {
            object rtn    = null;
            var    up     = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            var    name   = ComFunc.nvl(PostDataD.name);
            var    url    = ComFunc.nvl(PostDataD.url);
            var    ismenu = ComFunc.nvl(PostDataD.ismenu);
            var    remark = ComFunc.nvl(PostDataD.remark);

            BeginTrans();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'FunctionInfo',
	$where: {
        $or:[
            FunctionNo: {0},
            FunctionName:{1}
        ]
		
	}
}", no, name));

            if (IsValidBy("功能已存在", () => re.QueryTable.RowLength <= 0))
            {
                DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Update',
$table : 'FunctionInfo',
FunctionName:{1},
Url:{2},
IsMenu:{3},
Remark:{4},
$where:{
        FunctionNo:{0}
    }
}", no, name, url, (ismenu == "true" || ismenu == "1") ? 1 : 0, remark));

                rtn = new
                {
                    no = no
                };
            }
            CommitTrans();
            SetRefreshCacheRoute($"/functions/{no}");
            return(rtn);
        }
示例#22
0
        object list(LogicData arg)
        {
            var id = ComFunc.nvl(arg["filter"]);
            var up = DB.NewDBUnitParameter();

            up.SetValue("id", id);
            FrameDLRObject express = FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'QueryByPage',
$table : 'LoginInfo'
}");

            if (id != "")
            {
                express.SetValue("$where", FrameDLRObject.CreateInstanceFromat(@"{
	$or:[
        {
            LoginID:{
                    $like:{0}
                }
        },
        {
            LoginName:{
                    $like:{0}
                }
        }
    ]
}", id));
            }

            UnitDataCollection re = DB.Excute(up, express);
            var list = re.QueryData <FrameDLRObject>();
            var rtn  = FrameDLRObject.CreateInstance(true, "");

            rtn.data           = list;
            rtn.current_page   = re.CurrentPage;
            rtn.count_per_page = re.Count_Of_OnePage;
            rtn.to_page        = re.CurrentPage;
            rtn.total_page     = re.TotalPage;
            rtn.total_row      = re.TotalRow;

            return(rtn);
        }
        /// <summary>
        /// 标准化DB执行操作
        /// </summary>
        /// <param name="p"></param>
        /// <param name="express"></param>
        /// <returns></returns>
        public static UnitDataCollection Excute(UnitParameter p, DBExpress express)
        {
            UnitDataCollection rtn = new UnitDataCollection();

            if (express != null)
            {
                p.SetValue("__json__", express);
                if (p.Dao is ADBAccess)
                {
                    if (express.CurrentAct == DBExpress.ActType.Query)
                    {
                        rtn = Query <JsonExpressUnit>(p, "");
                    }
                    else if (express.CurrentAct == DBExpress.ActType.QueryByPage)
                    {
                        rtn = QueryByPage <JsonExpressUnit>(p, "");
                    }
                    else
                    {
                        switch (express.CurrentAct)
                        {
                        case DBExpress.ActType.CreateTable:
                            rtn.ErrorMsg = ExcuteDDL <JsonExpressUnit>(p, "");
                            break;

                        case DBExpress.ActType.AlterColumn:
                            rtn.ErrorMsg = ExcuteDDL <JsonExpressUnit>(p, "");
                            break;

                        case DBExpress.ActType.DropTable:
                            rtn.ErrorMsg = ExcuteDDL <JsonExpressUnit>(p, "");
                            break;

                        default:
                            NonQuery <JsonExpressUnit>(p, "");
                            break;
                        }
                    }
                }
            }
            return(rtn);
        }
示例#24
0
        public override object post()
        {
            object rtn = null;

            var id = ComFunc.nvl(PostDataD.id);
            var pass = ComFunc.nvl(PostDataD.pw);
            var name = ComFunc.nvl(PostDataD.name);
            var remark = ComFunc.nvl(PostDataD.remark);
            BeginTrans();
            var up = DB.NewDefaultDBUnitParameter<SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'LoginInfo',
$where : {
		LoginID:{0}
}
}", id));
            if(IsValidBy("账号已经存在", ()=> !(re.QueryTable.RowLength > 0)))
            {
                var uid = Guid.NewGuid().ToString();
                DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Insert',
$table : 'LoginInfo',
UID:{0},
LoginID:{1},
LoginPass:{2},
LoginName:{3},
Remark:{4},
IsActive:'true'
}", uid, id, pass, name, remark));

                rtn = new
                {
                    uid = uid,
                    id = id
                };

            }
            CommitTrans();
            return rtn;
        }
示例#25
0
        public object patch(string id)
        {
            object rtn = null;

            id = ComFunc.nvl(id);
            var name = ComFunc.nvl(PostDataD.name);
            var remark = ComFunc.nvl(PostDataD.remark);

            BeginTrans();
            var up = DB.NewDefaultDBUnitParameter<SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'LoginInfo',
$where : {
		LoginID:{0}
}
}", id));
            if (IsValidBy("账号不存在", () => re.QueryTable.RowLength > 0))
            {
                DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Update',
$table : 'LoginInfo',
LoginName:{1},
Remark:{2},
$where:{
    LoginID:{0}
}
}", id, name, remark));

                rtn = new
                {
                    id = id
                };

            }
            CommitTrans();
            SetRefreshCacheRoute($"/user/{id}");
            return rtn;
        }
示例#26
0
        public object get(dynamic parent_info)
        {
            SetCacheEnable(false);
            if (parent_info == null)
            {
                return(null);
            }

            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"
{
	$acttype: 'Query',
	'a.RoleUID':true,
	'a.RoleName':true,
	'a.Remark':true,
	$table: {
		RoleInfo: 'a',
		Map_LoginRole: {
			$as: 'b',
			$join: {
				$by: 'a',
				$on: {
					'b.RoleUID': '#sql:a.RoleUID'
				}
			}
		}
	},
	$where: {
		'b.LoginUID': {0},
        'a.IsActive':{1}
	}
}", parent_info.uid, "1"));

            var l = from t in re.QueryData <FrameDLRObject>()
                    select new { UID = t.RoleUID, Name = t.RoleName, Remark = t.Remark };

            return(l.ToList());
        }
示例#27
0
        public override object post()
        {
            object rtn    = null;
            var    up     = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            string name   = ComFunc.nvl(PostDataD.name);
            string remark = ComFunc.nvl(PostDataD.remark);

            BeginTrans();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'RoleInfo',
	$where: {
        RoleName:{0}
	}
}", name));

            if (IsValidBy("角色已存在", () => re.QueryTable.RowLength <= 0))
            {
                var uid = Guid.NewGuid().ToString();
                DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Insert',
$table : 'RoleInfo',
RoleUID:{0},
RoleName:{1},
Remark:{2},
CreateTime:{3},
IsActive:{4}
}", uid, name, remark, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), "1"));

                rtn = new
                {
                    id = uid
                };
            }
            CommitTrans();

            return(rtn);
        }
示例#28
0
        public DataCollection DoOperate(ParameterStd p)
        {
            string        flag   = p.GetValue <string>("_unit_action_flag_");
            UnitParameter up     = (UnitParameter)p;
            T             t      = (T)Activator.CreateInstance(typeof(T), true);
            var           sqlobj = t.GetSqlFunc(flag)(up);

            if (!(sqlobj is FrameDLRObject))
            {
                throw new TypeRequiredException("需要的动态数据对象类型应该为FrameDLRObject");
            }
            IDBAccessInfo          dba = up.Dao;
            DBOParameterCollection dbc = up.SPParameter;
            UnitDataCollection     rtn = new UnitDataCollection();

            if (dba is ADBAccess)
            {
                bool             isrturnds = sqlobj.isreturnds != null ? sqlobj.isreturnds : false;
                DBDataCollection dbrtn     = ((ADBAccess)dba).ExcuteProcedure(ComFunc.nvl(sqlobj.spname), isrturnds, ref dbc);
                if (dbrtn.IsSuccess)
                {
                    foreach (string s in dbrtn.Keys)
                    {
                        if (dbrtn[s] is DataSetStd)
                        {
                            rtn.QueryDatas = dbrtn.ReturnDataSet;
                        }
                        else
                        {
                            rtn.SetValue(s, dbrtn[s]);
                        }
                    }
                }
            }
            return(rtn);
        }
示例#29
0
        public object Active(string id,string isactive)
        {
            object rtn = null;

            id = ComFunc.nvl(id);
            isactive = ComFunc.nvl(isactive);
            BeginTrans();
            var up = DB.NewDefaultDBUnitParameter<SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'LoginInfo',
$where : {
		LoginID:{0}
}
}", id));
            if (IsValidBy("账号不存在", () => re.QueryTable.RowLength > 0))
            {
                DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Update',
$table : 'LoginInfo',
IsActive:{1},
$where:{
    LoginID:{0}
}
}", id, isactive.ToLower()=="true"?"true":"false"));

                rtn = new
                {
                    id = id
                };

            }
            CommitTrans();
            SetRefreshCacheRoute($"/user/{id}");
            return rtn;
        }
示例#30
0
文件: IDCache.cs 项目: Nksn22/Funky
        public IDCache()
        {
            Logger.DBLog.Info("[fBaseXtensions] Loading The External Cache...");

            var unitdata = UnitDataCollection.DeserializeFromXML();

            //var unitdata = new UnitDataCollection(); UnitDataCollection.SerializeToXML(unitdata);

            UnitEntries.Clear();
            foreach (var entry in unitdata.UnitEntries)
            {
                UnitEntries.Add(entry.SnoId, new CacheUnitEntry(entry.SnoId, (UnitFlags)entry.ObjectType, entry.InternalName));
            }
            Logger.DBLog.DebugFormat("[fBaseXtensions] Loaded {0} Unit Entries", UnitEntries.Count);

            UnitPetEntries.Clear();
            foreach (var entry in unitdata.UnitPetEntries)
            {
                UnitPetEntries.Add(entry.SnoId, new CacheUnitPetEntry(entry.SnoId, (PetTypes)entry.ObjectType, entry.InternalName));
            }
            Logger.DBLog.DebugFormat("[fBaseXtensions] Loaded {0} Pet Entries", UnitPetEntries.Count);

            var Items = ItemDataCollection.DeserializeFromXML();

            //var Items = new ItemDataCollection(); ItemDataCollection.SerializeToXML(Items);

            ItemDroppedEntries.Clear();
            foreach (var entry in Items.DroppedItemCache)
            {
                ItemDroppedEntries.Add(entry.SnoId, new CacheDroppedItemEntry(entry.SnoId, (PluginDroppedItemTypes)entry.ObjectType, entry.InternalName));
            }
            Logger.DBLog.DebugFormat("[fBaseXtensions] Loaded {0} Dropped Item Entries", ItemDroppedEntries.Count);

            ItemDataEntries.Clear();
            foreach (var entry in Items.ItemDataCache)
            {
                ItemDataEntries.Add(entry.SnoId, entry);
            }
            Logger.DBLog.DebugFormat("[fBaseXtensions] Loaded {0} Item Entries", ItemDataEntries.Count);

            ItemGemEntries.Clear();
            foreach (var entry in Items.GemCache)
            {
                ItemGemEntries.Add(entry.SnoId, new CacheItemGemEntry(entry));
            }
            Logger.DBLog.DebugFormat("[fBaseXtensions] Loaded {0} Gem Entries", ItemGemEntries.Count);

            ItemDroppedInternalNames.Clear();
            foreach (var entry in Items.DroppedItemInternalNames)
            {
                ItemDroppedInternalNames.Add(entry);
            }
            //Logger.DBLog.InfoFormat("[fBaseXtensions] Loaded {0} Item Name Entries", ItemDroppedInternalNames.Count);


            var Gizmos = GizmoDataCollection.DeserializeFromXML();

            //var Gizmos = new GizmoDataCollection(); GizmoDataCollection.SerializeToXML(Gizmos);

            GizmoEntries.Clear();
            foreach (var entry in Gizmos.GizmoCache)
            {
                var pluginGizmoType = (PluginGizmoType)entry.ObjectType;

                GizmoEntries.Add(entry.SnoId,
                                 new CacheGizmoEntry(entry.SnoId,
                                                     (GizmoType)Enum.Parse(typeof(GizmoType), pluginGizmoType.ToString()),
                                                     entry.InternalName,
                                                     entry.GizmotargetType));
            }
            Logger.DBLog.DebugFormat("[fBaseXtensions] Loaded {0} Gizmo Entries", GizmoEntries.Count);


            var Avoidance = AvoidanceDataCollection.DeserializeFromXML();

            //var Avoidance = new AvoidanceDataCollection(); AvoidanceDataCollection.SerializeToXML(Avoidance);

            AvoidanceEntries.Clear();
            foreach (var entry in Avoidance.AvoidanceCache)
            {
                AvoidanceEntries.Add(entry.SnoId, new CacheAvoidanceEntry(entry.SnoId, (AvoidanceType)entry.ObjectType, entry.InternalName));
            }
            Logger.DBLog.DebugFormat("[fBaseXtensions] Loaded {0} Avoidance Entries", AvoidanceEntries.Count);

            Logger.DBLog.InfoFormat("[fBaseXtensions] Finished Loading The External Cache!");
        }