示例#1
0
        private void OnCreateCustomUserModelDifferenceStore(object sender, CreateCustomModelDifferenceStoreEventArgs e)
        {
            if (IsHosted && _customUserModelDifferenceStore)
            {
                return;
            }
            _customUserModelDifferenceStore = true;
            var stringModelStores = ResourceModelCollector.GetEmbededModelStores();

            foreach (var stringModelStore in stringModelStores)
            {
                e.AddExtraDiffStore(stringModelStore.Key, stringModelStore.Value);
            }
            IEnumerable <string> models = Directory.GetFiles(BinDirectory, "*.Xpand.xafml", SearchOption.TopDirectoryOnly);

            models = models.Concat(Directory.GetFiles(BinDirectory, "model.user*.xafml", SearchOption.TopDirectoryOnly)).Where(s => !s.ToLowerInvariant().EndsWith("model.user.xafml"));
            if (IsHosted)
            {
                models = models.Concat(Directory.GetFiles(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "model.user*.xafml", SearchOption.TopDirectoryOnly));
            }
            foreach (var path in models)
            {
                string fileNameTemplate = Path.GetFileNameWithoutExtension(path);
                var    storePath        = Path.GetDirectoryName(path);
                var    fileModelStore   = new FileModelStore(storePath, fileNameTemplate);
                e.AddExtraDiffStore(fileNameTemplate, fileModelStore);
            }
        }
示例#2
0
        private static IEnumerable <ModelApplicationBase> GetEmbebedApplications(IEnumerable <ModelApplicationBase> modelApplicationBases, ModelNode node)
        {
            var moduleBases = modelApplicationBases.Cast <IModelSources>().SelectMany(sources => sources.Modules);

            return(ResourceModelCollector.GetEmbededModelStores(moduleBases).Select(pair => {
                var modelApplication = node.CreatorInstance.CreateModelApplication();
                modelApplication.Id = pair.Key;
                pair.Value.Load(modelApplication);
                return modelApplication;
            }).Cast <IModelApplication>().Where(application => application.Views != null).Cast <ModelApplicationBase>());
        }