Пример #1
0
        public ModelApplicationBase GetModel(ModelApplicationBase master)
        {
            if (!master.IsMaster)
            {
                throw new ArgumentException("IsNotMaster", "master");
            }
            if (master.LastLayer.Id != "After Setup")
            {
                throw new ArgumentException("master.LastLayer", master.LastLayer.Id);
            }
            Guard.ArgumentNotNull(Name, "Name");
            var layer = master.CreatorInstance.CreateModelApplication();

            layer.Id = Name;
            master.AddLayerBeforeLast(layer);
            var modelXmlReader = new ModelXmlReader();

            foreach (var aspectObject in AspectObjects)
            {
                if (!(string.IsNullOrEmpty(aspectObject.Xml)))
                {
                    modelXmlReader.ReadFromString(layer, GetAspectName(aspectObject), aspectObject.Xml);
                }
            }
            _currentModel = layer;

            return(layer);
        }
Пример #2
0
        public static IModelNode MergeWith(this IModelNode node, string xml)
        {
            var modelXmlReader       = new ModelXmlReader();
            var modelApplicationBase = node.Application.NewModelApplication();

            modelXmlReader.ReadFromString(modelApplicationBase, "", xml);
            node.MergeWith(modelApplicationBase);
            return(node);
        }
 void CombineWithActiveDifferenceObjects(ModelApplicationBase model, IEnumerable<ModelDifferenceObject> modelDifferenceObjects) {
     var reader = new ModelXmlReader();
     foreach (var modelDifferenceObject in modelDifferenceObjects) {
         foreach (var aspectObject in modelDifferenceObject.AspectObjects) {
             var xml = aspectObject.Xml;
             if (!string.IsNullOrEmpty(xml))
                 reader.ReadFromString(model, modelDifferenceObject.GetAspectName(aspectObject), xml);
         }
     }
 }
Пример #4
0
        public object Deserialize(Type modelType, string content)
        {
            DataContractSerializer serializer = GetSerializerForType(modelType);

            using (var stream = new StringReader(content))
                using (var reader = new ModelXmlReader(stream))
                {
                    return(serializer.ReadObject(reader));
                }
        }
Пример #5
0
 public void AddLayers(string modelApplicationPrefix, Dictionary<string, ModelDifferenceObjectInfo> loadedModelDifferenceObjectInfos, ModelApplicationBase model) {
     var modelXmlReader = new ModelXmlReader();
     var assemblies = _xafApplication.Modules.Select(module => module.GetType().Assembly);
     var resourceModelCollector = new ResourceModelCollector();
     foreach (var keyValuePair in resourceModelCollector.Collect(assemblies, modelApplicationPrefix)) {
         var modelDifferenceObjectInfo = GetModelDifferenceObjectInfo(modelApplicationPrefix, loadedModelDifferenceObjectInfos, keyValuePair.Key, model);
         foreach (var aspectInfo in keyValuePair.Value.AspectInfos) {
             modelXmlReader.ReadFromString(modelDifferenceObjectInfo.Model, aspectInfo.AspectName, aspectInfo.Xml);
         }
         modelDifferenceObjectInfo.ModelDifferenceObject.CreateAspects(modelDifferenceObjectInfo.Model);
     }
 }
Пример #6
0
 void AddLayersCore(IEnumerable<KeyValuePair<string, ResourceInfo>> layers, ModelApplicationBase modelApplication) {
     IEnumerable<KeyValuePair<string, ResourceInfo>> keyValuePairs = layers;
     foreach (var pair in keyValuePairs) {
         ModelApplicationBase layer = modelApplication.CreatorInstance.CreateModelApplication();
         layer.Id = pair.Key;
         modelApplication.AddLayer(layer);
         var modelXmlReader = new ModelXmlReader();
         foreach (var aspectInfo in pair.Value.AspectInfos) {
             modelXmlReader.ReadFromString(layer, aspectInfo.AspectName, aspectInfo.Xml);
         }
     }
 }
Пример #7
0
 public static void ReadFromModel(this ModelXmlReader modelXmlReader, ModelApplicationBase modelNode,
                                  ModelApplicationBase readFrom, Func <string, bool> aspectNamePredicate)
 {
     for (int i = 0; i < readFrom.AspectCount; i++)
     {
         string aspect = readFrom.GetAspect(i);
         string xml    = new ModelXmlWriter().WriteToString(readFrom, i);
         if (!(string.IsNullOrEmpty(xml)))
         {
             new ModelXmlReader().ReadFromString(modelNode, aspect, xml);
         }
     }
 }
Пример #8
0
        void CombineWithActiveDifferenceObjects(ModelApplicationBase model, IEnumerable <ModelDifferenceObject> modelDifferenceObjects)
        {
            var reader = new ModelXmlReader();

            foreach (var modelDifferenceObject in modelDifferenceObjects)
            {
                foreach (var aspectObject in modelDifferenceObject.AspectObjects)
                {
                    var xml = aspectObject.Xml;
                    if (!string.IsNullOrEmpty(xml))
                    {
                        reader.ReadFromString(model, modelDifferenceObject.GetAspectName(aspectObject), xml);
                    }
                }
            }
        }
Пример #9
0
        public void AddLayers(string modelApplicationPrefix, Dictionary <string, ModelDifferenceObjectInfo> loadedModelDifferenceObjectInfos, ModelApplicationBase model)
        {
            var modelXmlReader         = new ModelXmlReader();
            var assemblies             = _xafApplication.Modules.Select(module => module.GetType().Assembly);
            var resourceModelCollector = new ResourceModelCollector();

            foreach (var keyValuePair in resourceModelCollector.Collect(assemblies, modelApplicationPrefix))
            {
                var modelDifferenceObjectInfo = GetModelDifferenceObjectInfo(modelApplicationPrefix, loadedModelDifferenceObjectInfos, keyValuePair.Key, model);
                foreach (var aspectInfo in keyValuePair.Value.AspectInfos)
                {
                    modelXmlReader.ReadFromString(modelDifferenceObjectInfo.Model, aspectInfo.AspectName, aspectInfo.Xml);
                }
                modelDifferenceObjectInfo.ModelDifferenceObject.CreateAspects(modelDifferenceObjectInfo.Model);
            }
        }
Пример #10
0
        void AddLayersCore(IEnumerable <KeyValuePair <string, ResourceInfo> > layers, ModelApplicationBase modelApplication)
        {
            IEnumerable <KeyValuePair <string, ResourceInfo> > keyValuePairs = layers;

            foreach (var pair in keyValuePairs)
            {
                ModelApplicationBase layer = modelApplication.CreatorInstance.CreateModelApplication();
                layer.Id = pair.Key;
                ModelApplicationHelper.AddLayer(modelApplication, layer);
                var modelXmlReader = new ModelXmlReader();
                foreach (var aspectInfo in pair.Value.AspectInfos)
                {
                    modelXmlReader.ReadFromString(layer, aspectInfo.AspectName, aspectInfo.Xml);
                }
            }
        }
Пример #11
0
        private ModelApplicationBase LoadFromPath()
        {
            var reader = new ModelXmlReader();
            var model  = CreateModelApplication(((ModelApplicationBase)Application.Model), DifferenceType);

            foreach (var s in GetModelPaths().Where(s => (Path.GetFileName(s) + "").ToLower().StartsWith("model") && s.IndexOf(".User", System.StringComparison.Ordinal) == -1))
            {
                string replace = s.Replace(".xafml", "");
                string aspect  = string.Empty;
                if (replace.IndexOf("_", System.StringComparison.Ordinal) > -1)
                {
                    aspect = replace.Substring(replace.IndexOf("_", System.StringComparison.Ordinal) + 1);
                }
                reader.ReadFromFile(model, aspect, s);
            }

            return(model);
        }
Пример #12
0
        public ModelApplicationBase GetModel(ModelApplicationBase master) {
            if (!master.IsMaster) {
                throw new ArgumentException("IsNotMaster", "master");
            }
            if (master.LastLayer.Id != "After Setup")
                throw new ArgumentException("master.LastLayer", master.LastLayer.Id);
            Guard.ArgumentNotNull(Name, "Name");
            var layer = master.CreatorInstance.CreateModelApplication();
            layer.Id = Name;
            master.AddLayerBeforeLast(layer);
            var modelXmlReader = new ModelXmlReader();
            foreach (var aspectObject in AspectObjects) {
                if (!(string.IsNullOrEmpty(aspectObject.Xml)))
                    modelXmlReader.ReadFromString(layer, GetAspectName(aspectObject), aspectObject.Xml);
            }
            _currentModel = layer;

            return layer;
        }
Пример #13
0
        protected IModelApplication CreateTestModel(IEnumerable <Type> boModelTypes, params string[] layerXmls)
        {
            ModelApplicationBase model = ApplicationCreator.CreateModelApplication();

            ApplicationModelTestsHelper.AddLayer(model, ApplicationCreator.CreateModelApplication());
            if (layerXmls != null)
            {
                ModelXmlReader reader = new ModelXmlReader();
                foreach (string layerXml in layerXmls)
                {
                    ModelApplicationBase layer = ApplicationCreator.CreateModelApplication();
                    if (!string.IsNullOrEmpty(layerXml))
                    {
                        reader.ReadFromString(layer, string.Empty, layerXml);
                    }
                    ApplicationModelTestsHelper.AddLayer(model, layer);
                }
            }
            ((IModelSources)model).BOModelTypes = boModelTypes != null ? boModelTypes : Type.EmptyTypes;
            return((IModelApplication)model);
        }
        private ModelApplicationBase LoadFromPath() {
            var reader = new ModelXmlReader();
            var model = CreateModelApplication(((ModelApplicationBase)Application.Model), DifferenceType); 
            
            foreach (var s in GetModelPaths().Where(s => (Path.GetFileName(s) + "").ToLower().StartsWith("model") && s.IndexOf(".User", System.StringComparison.Ordinal) == -1)) {
                string replace = s.Replace(".xafml", "");
                string aspect = string.Empty;
                if (replace.IndexOf("_", System.StringComparison.Ordinal) > -1)
                    aspect = replace.Substring(replace.IndexOf("_", System.StringComparison.Ordinal) + 1);
                reader.ReadFromFile(model, aspect, s);
            }

            return model;
        }
Пример #15
0
 public static void ReadFromModel(this ModelXmlReader modelXmlReader, IModelNode modelNode,
                                  IModelNode readFrom)
 {
     ReadFromModel(modelXmlReader, modelNode, readFrom, null);
 }
        private ModelApplicationBase LoadFromPath() {
            var reader = new ModelXmlReader();
            var model = ((ModelApplicationBase)Application.Model).CreatorInstance.CreateModelApplication();

            foreach (var s in GetModelPaths().Where(s => (Path.GetFileName(s)+"").ToLower().StartsWith("model") && s.IndexOf(".User") == -1)) {
                string replace = s.Replace(".xafml", "");
                string aspect = string.Empty;
                if (replace.IndexOf("_") > -1)
                    aspect = replace.Substring(replace.IndexOf("_") + 1);
                reader.ReadFromFile(model, aspect, s);
            }

            return model;
        }
Пример #17
0
 public static void ReadFromModel(this ModelXmlReader modelXmlReader, ModelApplicationBase modelNode,
                                  ModelApplicationBase readFrom)
 {
     ReadFromModel(modelXmlReader, modelNode, readFrom, null);
 }