예제 #1
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);
            }
        }
예제 #2
0
 private void OnFileRenamed(object sender, RenamedEventArgs e)
 {
     eventDispatcher.PublishAsync(new FileRenamed(LocalFileSystem.FromFilePath(e.FullPath)));
 }