Ejemplo n.º 1
0
        bool ValidateBOModel(IPersistentAssemblyInfo persistentAssemblyInfo, Type compileCore)
        {
            if (persistentAssemblyInfo.ValidateModelOnCompile)
            {
                var instance = XafTypesInfo.Instance;
                try {
                    var typesInfo = new TypesInfoBuilder.TypesInfo();
                    typesInfo.AddEntityStore(new NonPersistentEntityStore(typesInfo));
                    typesInfo.AddEntityStore(new XpoTypeInfoSource(typesInfo));

                    typesInfo.AssignAsInstance();
                    typesInfo.LoadTypes(compileCore.Assembly);
                    var applicationModulesManager = new ApplicationModulesManager();
                    applicationModulesManager.AddModule(compileCore);
                    applicationModulesManager.Load(typesInfo, true);
                }
                catch (Exception exception) {
                    persistentAssemblyInfo.CompileErrors = exception.ToString();
                    return(false);
                }
                finally {
                    instance.AssignAsInstance();
                }
            }
            return(true);
        }
Ejemplo n.º 2
0
        private void TypesInfoValidation(string assemblyFile, TypesInfo typesInfo)
        {
            var applicationModulesManager = new ApplicationModulesManager();
            var types = Assembly.LoadFile(assemblyFile).GetTypes();

            applicationModulesManager.AddModule(types.First(type => typeof(ModuleBase).IsAssignableFrom(type)));
            applicationModulesManager.Load(typesInfo);
        }
Ejemplo n.º 3
0
 ApplicationModulesManager CreateModulesManager(XafApplication application, string configFileName, string assembliesPath, ITypesInfo typesInfo)
 {
     if (!string.IsNullOrEmpty(configFileName))
     {
         bool isWebApplicationModel = String.Compare(Path.GetFileNameWithoutExtension(configFileName), "web", StringComparison.OrdinalIgnoreCase) == 0;
         if (string.IsNullOrEmpty(assembliesPath))
         {
             assembliesPath = Path.GetDirectoryName(configFileName);
             if (isWebApplicationModel)
             {
                 assembliesPath = Path.Combine(assembliesPath + "", "Bin");
             }
         }
     }
     ReflectionHelper.AddResolvePath(assembliesPath);
     try {
         var result = new ApplicationModulesManager(new ControllersManager(), assembliesPath);
         if (application != null)
         {
             foreach (ModuleBase module in application.Modules)
             {
                 result.AddModule(module);
             }
             result.Security = application.Security;
         }
         if (!string.IsNullOrEmpty(configFileName))
         {
             result.AddModuleFromAssemblies(GetModulesFromConfig(application));
         }
         var info = typesInfo as TypesInfoBuilder.TypesInfo;
         if (info != null)
         {
             XpandModuleBase.Dictiorary = (info).Source.XPDictionary;
         }
         XpandModuleBase.TypesInfo = typesInfo;
         result.Load(typesInfo, typesInfo != XafTypesInfo.Instance);
         return(result);
     } finally {
         XpandModuleBase.Dictiorary = XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary;
         XpandModuleBase.TypesInfo  = XafTypesInfo.Instance;
         ReflectionHelper.RemoveResolvePath(assembliesPath);
     }
 }
Ejemplo n.º 4
0
        bool ValidateBOModel(IPersistentAssemblyInfo persistentAssemblyInfo, Type compileCore) {
            if (persistentAssemblyInfo.ValidateModelOnCompile) {
                var instance = XafTypesInfo.Instance;
                try{
                    var typesInfo = new TypesInfoBuilder.TypesInfo();
                    typesInfo.AddEntityStore(new NonPersistentEntityStore(typesInfo));
                    typesInfo.AddEntityStore(new XpoTypeInfoSource(typesInfo));

                    typesInfo.AssignAsInstance();
                    typesInfo.LoadTypes(compileCore.Assembly);
                    var applicationModulesManager = new ApplicationModulesManager();
                    applicationModulesManager.AddModule(compileCore);
                    applicationModulesManager.Load(typesInfo, true);
                }
                catch (Exception exception){
                    persistentAssemblyInfo.CompileErrors = exception.ToString();
                    return false;
                }
                finally{
                    instance.AssignAsInstance();
                }
            }
            return true;
        }