/// <summary> /// Creates a new instance. /// </summary> /// <param name="modelDefinitionProvider">A collection of presentation model definitions.</param> /// <param name="converters">A repository of converters.</param> /// <param name="modelValueGetterFactory">A factory for event value getter.</param> public CommandVisualizationFactory(TypeModelDefinitionCollection modelDefinitionProvider, IConverterRepository converters, IFactory <IModelValueGetter, ICommand> modelValueGetterFactory) { Ensure.NotNull(modelDefinitionProvider, "modelDefinitionProvider"); Ensure.NotNull(converters, "converters"); Ensure.NotNull(modelValueGetterFactory, "modelValueGetterFactory"); this.modelDefinitionProvider = modelDefinitionProvider; this.converters = converters; this.modelValueGetterFactory = modelValueGetterFactory; }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="eventStore">A store of the event streams.</param> /// <param name="eventDeserializer">A deserializer for event payload.</param> /// <param name="modelDefinitionProvider">A collection of presentation model definitions.</param> /// <param name="converters">A repository of converters.</param> /// <param name="modelValueGetterFactory">A factory for event value getter.</param> public AggregateRootVisualizationFactory(IEventStore eventStore, IDeserializer eventDeserializer, TypeModelDefinitionCollection modelDefinitionProvider, IConverterRepository converters, IFactory <IModelValueGetter, IEvent> modelValueGetterFactory) { Ensure.NotNull(eventStore, "eventStore"); Ensure.NotNull(eventDeserializer, "eventDeserializer"); Ensure.NotNull(modelDefinitionProvider, "modelDefinitionProvider"); Ensure.NotNull(converters, "converters"); Ensure.NotNull(modelValueGetterFactory, "modelValueGetterFactory"); this.eventStore = eventStore; this.eventDeserializer = eventDeserializer; this.converters = converters; this.modelDefinitionProvider = modelDefinitionProvider; this.modelValueGetterFactory = modelValueGetterFactory; }
public TestReflection() { metadataReaders = new AttributeMetadataReaderCollection() .Add(new CompareMetadataReader()) .Add(new DataTypeMetadataReader()) .Add(new DefaultValueMetadataReader()) .Add(new DescriptionMetadataReader()) .Add(new DisplayMetadataReader()) .Add(new RequiredMetadataReader()) .Add(new StringLengthMetadataReader()); fieldMetadataValidators = new FieldMetadataValidatorCollection() .Add(null, null, "Required", new RequiredMetadataValidator()) .Add(null, null, "MatchProperty", new MatchPropertyMetadataValidator()); valueUpdaters = new ReflectionValueUpdaterCollection() .Add <ICollection <int> >(new CollectionItemReflectionValueUpdater <int>()); modelDefinitions = new TypeModelDefinitionCollection() .AddReflectionSearchHandler(metadataReaders); }
/// <summary> /// Creates a new instance with <see cref="Converts.Repository"/> and <see cref="ReflectionModelValueProvider"/>. /// </summary> /// <param name="eventStore">A store of the event streams.</param> /// <param name="eventDeserializer">A deserializer for event payload.</param> /// <param name="modelDefinitionProvider">A collection of presentation model definitions.</param> /// <param name="modelValueGetterFactory">A factory for event value getter.</param> public AggregateRootVisualizationFactory(IEventStore eventStore, IDeserializer eventDeserializer, TypeModelDefinitionCollection modelDefinitionProvider, IFactory <IModelValueGetter, IEvent> modelValueGetterFactory) : this(eventStore, eventDeserializer, modelDefinitionProvider, Converts.Repository, modelValueGetterFactory) { }
/// <summary> /// Creates a new instance with <see cref="Converts.Repository"/> and <see cref="ReflectionModelValueProvider"/>. /// </summary> /// <param name="eventStore">A store of the event streams.</param> /// <param name="eventDeserializer">A deserializer for event payload.</param> /// <param name="modelDefinitionProvider">A collection of presentation model definitions.</param> /// <param name="converters">A repository of converters.</param> public AggregateRootVisualizationFactory(IEventStore eventStore, IDeserializer eventDeserializer, TypeModelDefinitionCollection modelDefinitionProvider, IConverterRepository converters) : this(eventStore, eventDeserializer, modelDefinitionProvider, converters, Factory.Getter <IModelValueGetter, IEvent>(e => new ReflectionModelValueProvider(e))) { }
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); }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="modelDefinitionProvider">A collection of presentation model definitions.</param> /// <param name="modelValueGetterFactory">A factory for event value getter.</param> public CommandVisualizationFactory(TypeModelDefinitionCollection modelDefinitionProvider, IFactory <IModelValueGetter, ICommand> modelValueGetterFactory) : this(modelDefinitionProvider, Converts.Repository, modelValueGetterFactory) { }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="modelDefinitionProvider">A collection of presentation model definitions.</param> /// <param name="converters">A repository of converters.</param> public CommandVisualizationFactory(TypeModelDefinitionCollection modelDefinitionProvider, IConverterRepository converters) : this(modelDefinitionProvider, converters, Factory.Getter <IModelValueGetter, ICommand>(e => new ReflectionModelValueProvider(e))) { }
/// <summary> /// Creates a new instance with <see cref="Converts.Repository"/> and <see cref="ReflectionModelValueProvider"/>. /// </summary> /// <param name="modelDefinitionProvider">A collection of presentation model definitions.</param> public CommandVisualizationFactory(TypeModelDefinitionCollection modelDefinitionProvider) : this(modelDefinitionProvider, Converts.Repository) { }