/// <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); }
/// <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); }