public Format_Detail GetById(int id) { using (CDStudioEntities dbEntity = new CDStudioEntities()) { var L2Enty = from c in dbEntity.UserRole.AsNoTracking() where c.Id == id select c; Format_Detail returnData = L2Enty.Select(s => new Format_Detail() { Id = s.Id, Name = s.Name }).SingleOrDefault <Format_Detail>(); if (returnData == null) { throw new CDSException(12103); } UserRolePermissionModel model = new UserRolePermissionModel(); returnData.PermissionCatalogList = model.GetAllByUserRoleId(id); return(returnData); } }
public List <Format_Detail> GetAllByCompanyId(int companyId) { using (CDStudioEntities dbEntity = new CDStudioEntities()) { List <Format_Detail> returnDataList = new List <Format_Detail>(); var L2Enty = from c in dbEntity.UserRole.AsNoTracking() where c.CompanyId == companyId select c; returnDataList = L2Enty.Select(s => new Format_Detail() { Id = s.Id, Name = s.Name }).ToList(); if (returnDataList.Count == 0) { return(returnDataList); } Dictionary <int, Format_Detail> returnDataDic = returnDataList.Select(s => new Format_Detail() { Id = s.Id, Name = s.Name, PermissionCatalogList = new List <UserRolePermissionModel.Format_Detail>() }).ToDictionary(o => o.Id, o => o); //In order to keep performance List <int> userRoleIdList = returnDataList.Select(s => s.Id).ToList(); UserRolePermissionModel model = new UserRolePermissionModel(); var permissionCatalogList = model.GetAllByUserRoleId(userRoleIdList); // add permissionCatalog into each userRole foreach (var permissionCatalog in permissionCatalogList) { returnDataDic[permissionCatalog.UserRoleId].PermissionCatalogList.Add(permissionCatalog); } //Clean old userRole data, insert userRole included permissionCatalog returnDataList.Clear(); foreach (var returnData in returnDataDic) { returnDataList.Add(returnData.Value); } return(returnDataList); } }