ModelApplicationBase GetModelApplication(ApplicationModulesManager applicationModulesManager, PathInfo pathInfo, FileModelStore fileModelStore) { var modelApplication = ModelApplicationHelper.CreateModel(XafTypesInfo.Instance, applicationModulesManager.DomainComponents, applicationModulesManager.Modules, applicationModulesManager.ControllersManager, Type.EmptyTypes, fileModelStore.GetAspects(), null, null); AddLayers(modelApplication, applicationModulesManager, pathInfo); Tracing.Tracer.LogText("AddLayers"); ModelApplicationBase lastLayer = modelApplication.CreatorInstance.CreateModelApplication(); fileModelStore.Load(lastLayer); ModelApplicationHelper.AddLayer(modelApplication, lastLayer); return(modelApplication); }
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); }