void AddLayers(ModelApplicationBase modelApplication, ApplicationModulesManager applicationModulesManager, PathInfo pathInfo)
        {
            var resourceModelCollector = new ResourceModelCollector();
            var resourceInfos          = resourceModelCollector.Collect(applicationModulesManager.Modules.Select(@base => @base.GetType().Assembly), null).Where(pair => !MatchLastLayer(pair, pathInfo));

            AddLayersCore(resourceInfos, modelApplication);
            ModelApplicationBase lastLayer = modelApplication.CreatorInstance.CreateModelApplication();

            ModelApplicationHelper.AddLayer(modelApplication, lastLayer);
        }
Beispiel #2
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);
            }
        }