Exemplo n.º 1
0
        public Project GetProject()
        {
            //Project project = FluorineContext.Current.Session[FluorineProjectSessionKey] as Project;
            Project project = HttpContext.Current.Application[FluorineProjectSessionKey] as Project;

            if (project == null)
            {
                string[] lac = TypeHelper.GetLacLocations();

                project = new Project(FluorineContext.Current.ApplicationPath, FluorineContext.Current.AbsoluteUri, HttpContext.Current.Server.MapPath(FluorineContext.Current.RequestApplicationPath), /*FluorineContext.Current.RequestApplicationPath,*/ lac);
                Type[] excludeTypes = new Type[] { typeof(System.Web.UI.Page), typeof(System.Web.HttpApplication) };
                Type[] attributes   = new Type[] { typeof(FluorineFx.RemotingServiceAttribute), typeof(FluorineFx.TransferObjectAttribute) };
                project.Build(excludeTypes, attributes, false);

                string safeName = Management.Util.GetSafeString(FluorineContext.Current.RequestApplicationPath);
                project.Package = safeName;
                //If we have assemblies pick up the first namespace as the package
                foreach (AssemblyDescriptor assemblyDescriptor in project.Assemblies)
                {
                    if (assemblyDescriptor.Namespaces.Count > 0)
                    {
                        project.Package = assemblyDescriptor.Namespaces[0].Name;
                    }
                }
                project.Name        = safeName;
                project.ContextRoot = FluorineContext.Current.RequestApplicationPath;
                project.Locked      = true;

                string baseDirectory = Path.Combine(FluorineContext.Current.ApplicationBaseDirectory, "apps");
                if (Directory.Exists(baseDirectory))
                {
                    foreach (string appDirectory in Directory.GetDirectories(baseDirectory))
                    {
                        DirectoryInfo            directoryInfo = new DirectoryInfo(appDirectory);
                        string                   appName       = directoryInfo.Name;
                        string                   appConfigFile = Path.Combine(appDirectory, "app.config");
                        ApplicationConfiguration configuration = ApplicationConfiguration.Load(appConfigFile);

                        Application application = new Application();
                        application.Name               = appName;
                        application.Directory          = directoryInfo.Name;
                        application.ApplicationHandler = configuration.ApplicationHandler.Type;

                        project.AddApplication(application);
                    }
                }
                //FluorineContext.Current.Session[FluorineProjectSessionKey] = project;
                HttpContext.Current.Application.Add(FluorineProjectSessionKey, project);
            }
            return(project);
        }
Exemplo n.º 2
0
        public void RefreshProject()
        {
            Project project = HttpContext.Current.Application[FluorineProjectSessionKey] as Project;

            if (project != null)
            {
                string[] lac = TypeHelper.GetLacLocations();

                project.ApplicationUrl  = FluorineContext.Current.ApplicationPath;
                project.Url             = FluorineContext.Current.AbsoluteUri;
                project.ApplicationRoot = HttpContext.Current.Server.MapPath(FluorineContext.Current.RequestApplicationPath);
                project.AssemblyPaths   = lac;
                Type[] excludeTypes = new Type[] { typeof(System.Web.UI.Page), typeof(System.Web.HttpApplication) };
                Type[] attributes   = new Type[] { typeof(FluorineFx.RemotingServiceAttribute), typeof(FluorineFx.TransferObjectAttribute) };
                project.Build(excludeTypes, attributes, false);

                project.ContextRoot = FluorineContext.Current.RequestApplicationPath;

                project.ClearApplications();
                string baseDirectory = Path.Combine(FluorineContext.Current.ApplicationBaseDirectory, "apps");
                if (Directory.Exists(baseDirectory))
                {
                    foreach (string appDirectory in Directory.GetDirectories(baseDirectory))
                    {
                        DirectoryInfo            directoryInfo = new DirectoryInfo(appDirectory);
                        string                   appName       = directoryInfo.Name;
                        string                   appConfigFile = Path.Combine(appDirectory, "app.config");
                        ApplicationConfiguration configuration = ApplicationConfiguration.Load(appConfigFile);

                        Application application = new Application();
                        application.Name               = appName;
                        application.Directory          = directoryInfo.Name;
                        application.ApplicationHandler = configuration.ApplicationHandler.Type;

                        project.AddApplication(application);
                    }
                }
            }
        }