public ScimResourceTypeDefinitionBuilder(
            ScimServerConfiguration serverConfiguration,
            string name,
            string schema,
            string endpoint,
            Type validatorType,
            SchemaBindingPredicate schemaBindingPredicate)
            : base(serverConfiguration, schema)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException("name");
            }

            if (string.IsNullOrWhiteSpace(schema))
            {
                throw new ArgumentNullException("schema");
            }

            if (string.IsNullOrWhiteSpace(endpoint))
            {
                throw new ArgumentNullException("endpoint");
            }

            if (validatorType == null)
            {
                throw new ArgumentNullException("validatorType");
            }

            if (schemaBindingPredicate == null)
            {
                throw new ArgumentNullException("schemaBindingPredicate");
            }

            if (!schema.StartsWith(ScimConstants.Defaults.URNPrefix, StringComparison.OrdinalIgnoreCase))
            {
                throw new Exception("Resource types define a schema identifier which starts with \"" + ScimConstants.Defaults.URNPrefix + "\" as per RFC2141.");
            }

            _SchemaExtensions = new Dictionary <string, ScimResourceTypeExtension>();

            if (!endpoint.StartsWith("/"))
            {
                endpoint = endpoint.Insert(0, "/");
            }

            _Endpoint               = endpoint;
            _ValidatorType          = validatorType;
            _SchemaBindingPredicate = schemaBindingPredicate;

            SetName(name);
        }
 public SchemaBindingRule(SchemaBindingPredicate predicate, Type target)
 {
     _Predicate = predicate;
     _Target    = target;
 }
 public SchemaBindingRule(SchemaBindingPredicate predicate, Type target)
 {
     _Predicate = predicate;
     _Target = target;
 }