예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }