public void GetValues() { IModelDefinition modelDefinition = modelDefinitions.Get <RegisterUserModel>(); RegisterUserModel model = new RegisterUserModel(); model.Username = "******"; model.Password = "******"; model.PasswordAgain = "y"; IModelValueProvider reflection = new ReflectionModelValueProvider(model, valueUpdaters); DictionaryModelValueProvider dictionary = new DictionaryModelValueProvider(); CopyModelValueProvider copyProvider = new CopyModelValueProvider(modelDefinition, true); copyProvider.Update(dictionary, reflection); object value; Assert.IsTrue(dictionary.TryGetValue(nameof(RegisterUserModel.Username), out value)); Assert.AreEqual(model.Username, value); Assert.IsTrue(dictionary.TryGetValue(nameof(RegisterUserModel.Password), out value)); Assert.AreEqual(model.Password, value); Assert.IsTrue(dictionary.TryGetValue(nameof(RegisterUserModel.PasswordAgain), out value)); Assert.AreEqual(model.PasswordAgain, value); }
public async Task <IKeyValueCollection> LoadRawAsync() { JsonSettings settings = await LoadInternalAsync(); ReflectionModelValueProvider <ISettings> valueProvider = new ReflectionModelValueProvider <ISettings>(settings); return(new ModelValueCollection(valueProvider, modelDefinition)); }
public ModelValueCollection(ReflectionModelValueProvider <ISettings> valueProvider, IModelDefinition modelDefinition, IConverterRepository converters) { Ensure.NotNull(valueProvider, "valueProvider"); Ensure.NotNull(modelDefinition, "modelDefinition"); Ensure.NotNull(converters, "converters"); this.modelDefinition = modelDefinition; this.converters = converters; ValueProvider = valueProvider; Keys = modelDefinition.Fields.Select(f => f.Identifier); }
public static void Test() { AttributeMetadataReaderCollection metadataReaders = new AttributeMetadataReaderCollection() .Add <CompareAttribute>(new CompareMetadataReader()) .Add <DataTypeAttribute>(new DataTypeMetadataReader()) .Add <DefaultValueAttribute>(new DefaultValueMetadataReader()) .Add <DescriptionAttribute>(new DescriptionMetadataReader()) .Add <DisplayAttribute>(new DisplayMetadataReader()) .Add <RequiredAttribute>(new RequiredMetadataReader()) .Add <StringLengthAttribute>(new StringLengthMetadataReader()); FieldMetadataValidatorCollection fieldMetadataValidators = new FieldMetadataValidatorCollection() .Add(null, null, "Required", new RequiredMetadataValidator()) .Add(null, null, "MatchProperty", new MatchPropertyMetadataValidator()); ReflectionValueUpdaterCollection valueUpdaters = new ReflectionValueUpdaterCollection() .Add <ICollection <int> >(new CollectionItemReflectionValueUpdater <int>()); BindingConverterCollection bindingConverters = new BindingConverterCollection() //.Add(new TypeFieldType(typeof(bool)), new BoolBindingConverter()) //.Add(new TypeFieldType(typeof(int)), new IntBindingConverter()) //.Add(new TypeFieldType(typeof(double)), new DoubleBindingConverter()) //.Add(new TypeFieldType(typeof(string)), new StringBindingConverter()); .AddStandart(); TypeModelDefinitionCollection modelDefinitions = new TypeModelDefinitionCollection() .AddReflectionSearchHandler(metadataReaders); IModelDefinition modelDefinition = modelDefinitions.Get <RegisterUserModel>(); RegisterUserModel model = new RegisterUserModel(); model.Username = "******"; model.Password = "******"; model.PasswordAgain = "y"; IModelValueProvider valueProvider = new ReflectionModelValueProvider(model, valueUpdaters); IBindingModelValueStorage storage = new BindingDictionaryValueStorage() .Add("Username", "Pepa") .Add("Password", "XxYy") //.Add("PasswordAgain", "XxYy") //.Add("Age", "25") .Add("RoleIDs", "1,2,3,4,5,6"); IModelValueGetter bindingGetter = new BindingModelValueGetter(storage, bindingConverters, modelDefinition); CopyModelValueProvider copyProvider = new CopyModelValueProvider(modelDefinition, true); Debug("Copy from dictionary", () => copyProvider.Update(valueProvider, bindingGetter)); Console.WriteLine("RoleIDs: {0}", String.Join(", ", model.RoleIDs)); IValidationHandler <ModelValidatorContext> modelValidator = new FieldMetadataModelValidator(fieldMetadataValidators); Task <IValidationResult> validationResult = Debug("Validate user", () => modelValidator.HandleAsync(new ModelValidatorContext(modelDefinition, valueProvider))); if (!validationResult.IsCompleted) { validationResult.RunSynchronously(); } Console.WriteLine(validationResult.Result); validationResult = Debug("Validate user with binding", () => modelValidator.HandleAsync(new ModelValidatorContext(modelDefinition, bindingGetter))); if (!validationResult.IsCompleted) { validationResult.RunSynchronously(); } Console.WriteLine(validationResult.Result); }
public ModelValueCollection(ReflectionModelValueProvider <ISettings> valueProvider, IModelDefinition modelDefinition) : this(valueProvider, modelDefinition, Converts.Repository) { }