Example #1
0
        public async Task <ActionResult <object> > Query()
        {
            var key = (string)this.ControllerContext.RouteData.Values["key"];

            Log.ObjectId = key;
            var dict = Request.Query.ToDictionary(kv => kv.Key, kv => (object)kv.Value.FirstOrDefault());

            dict.Remove("_"); //排除jQuery的随机数
            var result = await _dg.QueryAsync(key, dict);

            //throw new ArgumentException("手动引发的异常");
            return(result);
        }
Example #2
0
        //在角色管理里自动勾选的父级菜单不会保存到AppRoleMenu表,所以这里
        //要重新取出子级被授权的父级菜单
        private async Task <IList <AppMenu> > GetUserMenus(string userId)
        {
            var allMenus = await _menu.GetAllAsync();

            DataGateService ds          = Consts.Get <DataGateService>();
            var             userMenuIds = ((JArray)(await ds.QueryAsync("GetUserMenuIds", new { userId })))
                                          .Select(dr => (string)dr.First);

            userMenuIds = userMenuIds.Select(id => GetParentIds(allMenus, id)).UnionAll();
            return(allMenus.Where(m => userMenuIds.Contains(m.Id)).ToList());
        }
Example #3
0
        /// <summary>
        /// 根据token获取用户信息,将用户表所有字段(除密码等信息外)返回给客户端
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public async Task <object> GetUserAsync(string token)
        {
            var userSession = await Get(token);

            if (userSession == null)
            {
                return(MSG.SessionExpired);
            }
            DataGateService ds   = Consts.Get <DataGateService>();
            var             user = await ds.QueryAsync("GetUser", new { userSession.Id }) as Dictionary <string, object>;

            if (user == null)
            {
                return(MSG.UserNotExists);
            }

            user["menus"] = await GetUserMenus(userSession.Id);

            return(user);
        }
Example #4
0
        /// <summary>
        /// 根据MD5查找第一个匹配的文件
        /// </summary>
        /// <param name="md5"></param>
        /// <returns></returns>
        public async Task <SysFile> GetByMd5Async(string md5)
        {
            var doc = await _dg.QueryAsync("GetByMd5", new { md5 });

            return(doc == null ? null : JObject.FromObject(doc).ToObject <SysFile>());
        }