コード例 #1
0
        private void ValidateRelation(dynamic relation)
        {
            if (_relations.ContainsKey(relation.Id))
            {
                throw new InvalidRelationIdException(relation.Id);
            }
            if (relation.RelationServiceName != _ownName)
            {
                throw new InvalidRelationServiceException(relation.RelationServiceName);
            }
            string relationType = relation.RelationTypeName;

            if (relationType == null || !_relationTypes.ContainsKey(relationType))
            {
                throw new RelationTypeNotFoundException(relationType);
            }
            RoleResult    roles = relation.RetrieveAllRoles();
            IRelationType type  = _relationTypes[relationType];

            foreach (Role r in roles.Roles)
            {
                RoleInfo info = type[r.Name];
                if (!Role.ValidateRole(r.Value, type[r.Name], _server))
                {
                    throw new InvalidRoleValueException();
                }
            }
        }
コード例 #2
0
ファイル: RelationSupport.cs プロジェクト: yuzukwok/NetMX
 public IList <ObjectName> this[string roleName]
 {
     get
     {
         if (roleName == null)
         {
             throw new ArgumentNullException("roleName");
         }
         Role r;
         if (_roles.TryGetValue(roleName, out r))
         {
             RoleInfo info = _relationService.GetRoleInfo(_relationTypeName, roleName);
             if (info.Readable)
             {
                 return(r.Value);
             }
         }
         throw new RoleNotFoundException(roleName);
     }
     set
     {
         if (roleName == null)
         {
             throw new ArgumentNullException("roleName");
         }
         Role r;
         if (_roles.TryGetValue(roleName, out r))
         {
             RoleInfo info = _relationService.GetRoleInfo(_relationTypeName, roleName);
             if (!info.Writable)
             {
                 throw new RoleNotFoundException(roleName);
             }
             if (!Role.ValidateRole(value, info, _relationServiceMBeanServer))
             {
                 throw new InvalidRoleValueException();
             }
             _roles[roleName] = new Role(roleName, value);
         }
         else
         {
             throw new RoleNotFoundException(roleName);
         }
     }
 }