/// <summary>
        /// 获取应用所有的用户组
        /// </summary>
        /// <param name="appid"></param>
        /// <param name="kw">查询关键词</param>
        /// <returns></returns>
        public ActionResult GetAll(string appid, string kw)
        {
            var where = string.IsNullOrEmpty(appid) ? (Expression <Func <UserGroup, bool> >)(g => true) : (g => g.ClientApp.Any(a => a.AppId.Equals(appid)));
            UserGroupBll.LoadEntitiesNoTracking <UserGroupOutputDto>(where);
            List <int> ids = UserGroupBll.LoadEntitiesNoTracking <UserGroupOutputDto>(where).Select(g => g.Id).ToList();
            List <UserGroupOutputDto> list = new List <UserGroupOutputDto>();

            ids.ForEach(g =>
            {
                var raw  = UserGroupBll.GetSelfAndChildrenByParentId(g);
                var temp = string.IsNullOrEmpty(kw) ? raw.ToList() : raw.Where(u => u.GroupName.Contains(kw)).ToList();
                list.AddRange(temp);
            });
            return(ResultData(list.DistinctBy(u => u.Id)));
        }