Beispiel #1
0
 /// <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;
 }
Beispiel #2
0
 /// <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;
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 /// <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)
 {
 }
Beispiel #5
0
 /// <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);
        }
Beispiel #7
0
 /// <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)
 {
 }
Beispiel #8
0
 /// <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)))
 {
 }
Beispiel #9
0
 /// <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)
 {
 }