public bool TryGet(string modelIdentifier, string fieldIdentifier, string metadataKey, out IFieldMetadataValidator validator) { foreach (FieldMetadataValidatorKey key in LazyEnumerateKeys(modelIdentifier, fieldIdentifier, metadataKey)) { if (singletons.TryGetValue(key, out validator)) { return(true); } IFactory <IFieldMetadataValidator> builder; if (builders.TryGetValue(key, out builder)) { validator = builder.Create(); return(true); } if (onSearchValidator.TryExecute(key, out validator)) { return(true); } } validator = null; return(false); }
/// <summary> /// Add validator for <paramref name="metadataKey"/> on field <paramref name="fieldIdentifier"/> of model <paramref name="modelIdentifier"/>. /// </summary> /// <param name="modelIdentifier">Identifier of model definition.</param> /// <param name="fieldIdentifier">Identifier of field definition.</param> /// <param name="metadataKey">Field metadata validator key.</param> /// <param name="validator">Validator.</param> /// <returns>Self (for fluency).</returns> public FieldMetadataValidatorCollection Add(string modelIdentifier, string fieldIdentifier, string metadataKey, IFieldMetadataValidator validator) { singletons[new FieldMetadataValidatorKey(modelIdentifier, fieldIdentifier, metadataKey)] = validator; return(this); }