Example #1
0
        public void UpdateModel(IModelDefinition definition, IModelValueProvider model, IModelValueGetter newState)
        {
            CopyModelValueProvider copy = new CopyModelValueProvider(definition, true);

            copy.Update(model, newState);

            Has = true;
            Added?.Invoke();
        }
        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);

            UserModelPresenter.GetContainer(this).Definition = modelDefinition;
            CopyModelValueProvider copy = new CopyModelValueProvider(modelDefinition, true);

            copy.Update(this, library.Configuration);
        }
        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);

            ModelPresenter.Definition = modelDefinition;
            if (model != null)
            {
                CopyModelValueProvider copy = new CopyModelValueProvider(modelDefinition, true);
                copy.Update(ModelPresenter, model);
            }
            else
            {
                ModelPresenter.TrySetValue(nameof(Movie.Added), DateTime.Now);
            }
        }
        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);
        }
Example #5
0
        public static void Test()
        {
            IFile personXmlFile       = LocalFileSystem.FromFilePath("../../PresentationModels/PersonDefinition.xml");
            IFile organizationXmlFile = LocalFileSystem.FromFilePath("../../PresentationModels/OrganizationDefinition.xml");

            XmlTypeMappingCollection typeMappings           = new XmlTypeMappingCollection().AddStandartKeywords();
            IModelDefinition         personDefiniton        = new XmlModelDefinitionBuilder(typeMappings, new FileContentFactory(personXmlFile)).Create();
            IModelDefinition         organizationDefinition = new XmlModelDefinitionBuilder(typeMappings, new FileContentFactory(organizationXmlFile)).Create();

            XmlModelDefinitionSerializer serializer = new XmlModelDefinitionSerializer(typeMappings);

            using (StringWriter writer = new StringWriter())
            {
                serializer.Serialize(personDefiniton, writer);
                Console.WriteLine(writer);
            }

            IFile mixedXmlFile = LocalFileSystem.FromFilePath("../../PresentationModels/MixedDataSource.xml");
            XmlModelValueGetterFactory getterFactory = new XmlModelValueGetterFactory(mixedXmlFile.With <IFileContentReader>().GetContentAsStream());

            XmlModelValueGetterCollection persons       = getterFactory.Create(personDefiniton);
            XmlModelValueGetterCollection organizations = getterFactory.Create(organizationDefinition);

            Console.WriteLine("---------------------");
            foreach (IModelValueGetter getter in persons)
            {
                Console.WriteLine(
                    "Person: ({0}) {1}, {2}",
                    getter.GetValueOrDefault("ID", -1),
                    getter.GetValueOrDefault("FirstName", String.Empty),
                    getter.GetValueOrDefault("LastName", String.Empty)
                    );
            }

            foreach (IModelValueGetter getter in organizations)
            {
                Console.WriteLine(
                    "Organization: ({0}) {1}",
                    getter.GetValueOrDefault("ID", -1),
                    getter.GetValueOrDefault("Name", String.Empty)
                    );
            }

            XmlModelValueSetterFactory setterFactory = new XmlModelValueSetterFactory("DataSource");

            CopyModelValueProvider personCopier = new CopyModelValueProvider(personDefiniton, false);

            foreach (IModelValueGetter getter in persons)
            {
                personCopier.Update(setterFactory.Create(personDefiniton), getter);
            }

            CopyModelValueProvider organizationCopier = new CopyModelValueProvider(organizationDefinition, false);

            foreach (IModelValueGetter getter in organizations)
            {
                organizationCopier.Update(setterFactory.Create(organizationDefinition), getter);
            }

            //IFile newMixedFile = (IFile)LocalFileSystem.FromFilePath("../../PresentationModels/MixedDataSourceNEW.xml");
            using (FileStream stream = new FileStream("../../PresentationModels/MixedDataSourceNEW.xml", FileMode.OpenOrCreate))
            {
                setterFactory.SaveToStream(stream);
            }
        }