コード例 #1
0
 private static void GetByteConstraints(ADSchemaAttributeObject schemaObject, ADPropertyDefinition propDef, List <PropertyDefinitionConstraint> constraints)
 {
     if (propDef.Type == typeof(byte[]))
     {
         constraints.Add(new ByteArrayLengthConstraint(schemaObject.RangeLower ?? 0, schemaObject.RangeUpper ?? 0));
         return;
     }
     if (propDef.Type == typeof(string))
     {
         ADSchemaDataProvider.GetStringConstraints(schemaObject, propDef, constraints);
         return;
     }
     ExTraceGlobals.SchemaInitializationTracer.TraceDebug <DataSyntax, ADPropertyDefinition>(0L, "Unsupported property type '{1}' for data syntax '{0}'.", schemaObject.DataSyntax, propDef);
 }
コード例 #2
0
        private PropertyDefinitionConstraint[] GeneratePropertyConstraints(ADSchemaAttributeObject schemaObject, ADPropertyDefinition propDef)
        {
            List <PropertyDefinitionConstraint> list = new List <PropertyDefinitionConstraint>();

            switch (schemaObject.DataSyntax)
            {
            case DataSyntax.Boolean:
            case DataSyntax.Sid:
            case DataSyntax.ObjectIdentifier:
            case DataSyntax.UTCTime:
            case DataSyntax.GeneralizedTime:
            case DataSyntax.Interval:
            case DataSyntax.NTSecDesc:
            case DataSyntax.AccessPoint:
            case DataSyntax.DNBinary:
            case DataSyntax.DNString:
            case DataSyntax.DSDN:
            case DataSyntax.ORName:
            case DataSyntax.PresentationAddress:
            case DataSyntax.ReplicaLink:
                goto IL_BE;

            case DataSyntax.Integer:
            case DataSyntax.Enumeration:
                ADSchemaDataProvider.GetIntegerConstraints(schemaObject, propDef, list);
                goto IL_BE;

            case DataSyntax.Octet:
                ADSchemaDataProvider.GetByteConstraints(schemaObject, propDef, list);
                goto IL_BE;

            case DataSyntax.Numeric:
            case DataSyntax.Printable:
            case DataSyntax.Teletex:
            case DataSyntax.IA5:
            case DataSyntax.CaseSensitive:
            case DataSyntax.Unicode:
                ADSchemaDataProvider.GetStringConstraints(schemaObject, propDef, list);
                goto IL_BE;

            case DataSyntax.LargeInteger:
                ADSchemaDataProvider.GetLargeIntegerConstraints(schemaObject, propDef, list);
                goto IL_BE;
            }
            ExTraceGlobals.SchemaInitializationTracer.TraceDebug <DataSyntax, ADPropertyDefinition>((long)this.GetHashCode(), "Unsupported DataSyntax '{0}' found for property '{1}'.", schemaObject.DataSyntax, propDef);
IL_BE:
            return(list.ToArray());
        }