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); }
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); } }