Beispiel #1
0
        /// <summary>
        /// 取得某個模組功能清單
        /// </summary>
        /// <param name="moduleId"></param>
        /// <returns></returns>
        public List <Infrastructure.BusinessObject.AuthModuleInfo> ModuleFunctions(int moduleId)
        {
            List <Infrastructure.BusinessObject.AuthModuleInfo> result = new List <Infrastructure.BusinessObject.AuthModuleInfo>();
            var db = _uow.DbContext;

            var query = from mf in db.ModuleFunction.Where(t => t.ModulesId.Equals(moduleId) && t.Enable.Equals(true))
                        join m in db.Modules on mf.ModulesId equals m.Id
                        select new
            {
                ModulesId            = m.Id,
                ModulesName          = m.Name,
                ModuleFunctionId     = mf.Id,
                ModuleFunctionName   = mf.Name,
                ModuleFunctionEnable = mf.Enable
            };
            //權限模組資訊
            var resAuthModuleInfo = new Infrastructure.BusinessObject.AuthModuleInfo();

            resAuthModuleInfo.ModuleId   = query.ToArray()[0].ModulesId;
            resAuthModuleInfo.ModuleName = query.ToArray()[0].ModulesName;
            //權限功能資訊list
            var listModuleFunctionInfo = new List <Infrastructure.ValueObject.ModuleFunctionInfo>();

            foreach (var _item in query)
            {
                //權限功能
                var resModuleFunctionInfo = new Infrastructure.ValueObject.ModuleFunctionInfo();

                resModuleFunctionInfo.FunctionId   = _item.ModuleFunctionId;
                resModuleFunctionInfo.FunctionName = _item.ModuleFunctionName;
                resModuleFunctionInfo.Enable       = _item.ModuleFunctionEnable;
                listModuleFunctionInfo.Add(resModuleFunctionInfo);
                resAuthModuleInfo.Functions = listModuleFunctionInfo.ToArray();
            }
            result.Add(resAuthModuleInfo);
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// 取得被點名成員
        /// </summary>
        /// <param name="learningId"></param>
        /// <param name="functionKey"></param>
        /// <returns></returns>
        //public IEnumerable<Infrastructure.ValueObject.AuthMember> GeFunctionMemberList(int learningId, string functionKey)
        //{

        //    return _uow.IThinkVmRepo.GeFunctionMemberList(learningId, functionKey);
        //}

        /// <summary>
        /// 取得使用者在學習圈內的權限
        /// </summary>
        /// <param name="roleInfo"></param>
        /// <param name="sectionId"></param>
        /// <returns></returns>
        public IEnumerable <Infrastructure.BusinessObject.AuthModuleInfo> LearningRoleAuth(List <LearningRole> roleInfo, int learningId)
        {
            List <Infrastructure.BusinessObject.AuthModuleInfo> result = new List <Infrastructure.BusinessObject.AuthModuleInfo>();
            var db = _uow.DbContext;

            foreach (var _itemSql in roleInfo)
            {
                //取得權限相關資訊
                var query = from la in db.LearningAuth.Where(t => t.LearningRoleId.Equals(_itemSql.Id) && t.Enable.Equals(true))
                            join cmr in db.CircleMemberRoleplay on la.LearningRoleId equals cmr.RoleId

                            join lr in db.LearningRole.Where(t => t.LearningId.Equals(learningId)) on cmr.RoleId equals lr.Id
                            join mf in db.ModuleFunction on la.FunctionId equals mf.Id
                            join m in db.Modules on mf.ModulesId equals m.Id
                            group m by m.Id into g
                            select new
                {
                    ModulesId = g.Key
                };

                foreach (var _item in query)
                {
                    //權限模組資訊
                    var resAuthModuleInfo = new Infrastructure.BusinessObject.AuthModuleInfo();
                    //權限功能資訊list
                    var moduleFunctionList = moduleService.ModuleFunctions(_item.ModulesId);

                    resAuthModuleInfo.ModuleId   = moduleFunctionList.ToList()[0].ModuleId;
                    resAuthModuleInfo.ModuleName = moduleFunctionList.ToList()[0].ModuleName;
                    resAuthModuleInfo.Functions  = moduleFunctionList.ToList()[0].Functions.ToArray();

                    result.Add(resAuthModuleInfo);
                }
            }
            return(result);
        }