Example #1
0
        private List <PermissionViewModel> Get(int userId, bool available)
        {
            var roleId = RoleService.GetRoleFor(userId).Id;

            List <int> rolesPermissionIds = RelationRolePermissionRepository.GetAllActiveData()
                                            .Where(x => x.RoleId == roleId)
                                            .Select(x => x.PermissionId)
                                            .ToList();

            List <int> userPermissionIds = RelationUserPermissionRepository.GetAllActiveData()
                                           .Where(x => x.UserId == userId)
                                           .Select(x => x.PermissionId)
                                           .ToList();

            var union = rolesPermissionIds.Union(userPermissionIds);

            var domainData = PermissionRepository.GetAllActiveData()
                             .Where(x => available ? !union.Contains(x.Id) : union.Contains(x.Id))
                             .ToList();

            return(ConvertDataToViewModels(domainData).OrderByDescending(x => x.Id).ToList());
        }