Пример #1
0
 public MenuRoot(CloudCoreModule module)
 {
     ActionGuid = Guid.Empty;
     ParentFolderGuid = Guid.Empty;
     ActionTitle = "Menu Options";
     SystemModule = module;
     Environment.LoadedModuleActions.AddAction(this);
     Root = this;
 }
Пример #2
0
        protected CloudCoreVirtualFile(string virtualPath, CloudCoreModule module, string resourcePath)
            : base(virtualPath)
        {
            if (module == null)
            {
                throw new ArgumentNullException("module");
            }

            if (string.IsNullOrWhiteSpace(resourcePath))
            {
                throw new ArgumentException("resourcePath");
            }

            Module = module;
            ResourcePath = resourcePath;
            ResourceHash = Hash.Calculate(string.Format("{0}{1}", Encryption.Encrypt(module.LastWriteTime.ToBinary().ToString(CultureInfo.InvariantCulture)), resourcePath));
        }
Пример #3
0
        private void RegisterModule(CloudCoreModule module)
        {
            var moduleAlreadyLoaded = Environment.LoadedModules.FirstOrDefault(r => r.UniqueModuleId == module.UniqueModuleId) != null;

            if (moduleAlreadyLoaded)
            {
                Logger.Warn(
                    string.Format(
                        "A CloudCore-based assembly with unique GUID {0} has already been registered. Module load for '{1}' will be ignored.",
                        module.UniqueModuleId,
                        module.AssemblyName),
                    LogCategories.AppInit,
                    ignoreVerbosityConfig: true);
            }
            else
            {
                try
                {
                    RegisterModuleInDatabase(module);

                    //Has to be added to Environment.LoadedModules before RegisterModuleActions
                    //RegisterModuleActions will try to access module from Environment.LoadedModules
                    Environment.LoadedModules.Add(module);
                    module.ModuleIndex = Environment.LoadedModules.IndexOf(module);

                    RegisterModuleActions(module);
                }
                catch (Exception ex)
                {
                    if (module.ModuleType == CloudCoreModuleType.Core || module.ModuleType == CloudCoreModuleType.Assets)
                        throw new Exception(
                            string.Format(
                                "Terminating application by reason of module LOAD FAILED for {0}. Please refer to the logs for more information.",
                                module.AssemblyName), ex);
                    else
                        throw;
                }
            }
        }
Пример #4
0
 private static ModuleAction CreateNewModuleRoot(CloudCoreModule module, IModuleConfiguration moduleConfiguration)
 {
     var moduleRoot = new MenuRoot(module);
     return moduleRoot;
 }
Пример #5
0
 private static ModuleAction GetModuleRoot(CloudCoreModule module, IModuleConfiguration moduleConfiguration)
 {
     return Environment.LoadedModuleActions.GetRoot() ??
            CreateNewModuleRoot(module, moduleConfiguration);
 }
Пример #6
0
 internal static void AddModuleActions(CloudCoreModule module, IModuleConfiguration moduleConfiguration)
 {
     var moduleRoot = GetModuleRoot(module, moduleConfiguration);
     moduleConfiguration.LoadModuleActions(moduleRoot as MenuRoot);
 }
Пример #7
0
 protected IModuleConfiguration FindConfigInModule(CloudCoreModule module)
 {
     //return Environment.GetModuleActionsConfiguration(module);
     return module.ActionsConfiguration();
 }
Пример #8
0
        protected Dictionary<string, Type> LoadModuleScheduledTasks(CloudCoreModule module)
        {
            var scheduledTasks = (from a in module.Assembly.GetTypes()
                                  where a.IsClass && !a.IsAbstract &&
                                        a.IsSubclassOf(typeof(ScheduledTask))
                                  select a).ToList();

            foreach (var scheduledTask in scheduledTasks)
            {
                scheduledTaskTypes.Add(scheduledTask.Name, scheduledTask);
            }

            return scheduledTaskTypes;
        }
Пример #9
0
        private void RegisterModuleActions(CloudCoreModule module)
        {
            var configuration = module.ActionsConfiguration();

            if (configuration != null)
                MenuRoot.AddModuleActions(module, configuration);
        }
Пример #10
0
 public ModuleRegistrationService(CloudCoreModule module)
 {
     this.module = module;
 }
Пример #11
0
 public static void AdditionalConfiguration(CloudCoreModule module)
 {
     module.AdditionalIoCConfiguration(container);
 }
Пример #12
0
        protected Dictionary<string, Type> LoadModuleWorkflowActivities(CloudCoreModule item)
        {
            var activities = (from a in item.Assembly.GetTypes()
                              where a.IsClass && !a.IsAbstract &&
                                    a.GetInterfaces().Contains(typeof(IActivity))
                              select a).ToList();

            foreach (var activity in activities)
            {
                activityTypes.Add(activity.Name, activity);
            }

            return activityTypes;
        }
Пример #13
0
        protected Dictionary<string, Type> LoadModuleDashboardTasks(CloudCoreModule module)
        {
            var dashboardTasks = (from a in module.Assembly.GetTypes()
                                  where a.IsClass && !a.IsAbstract && a.GetInterfaces().Contains(typeof(IDashboard))
                                  select a).ToList();

            foreach (var dashboardTask in dashboardTasks)
            {
                dashboardTaskTypes.Add(dashboardTask.Name, dashboardTask);
            }

            return dashboardTaskTypes;
        }
 public EmbeddedResourceVirtualFile(string virtualPath, CloudCoreModule module, string resourcePath)
     : base(virtualPath, module, resourcePath)
 {
 }
Пример #15
0
        private void RegisterModuleInDatabase(CloudCoreModule module)
        {
            var systemModule = new SystemModule
            {
                SystemModuleId = 0,
                AssemblyName = module.AssemblyName,
                SystemModuleGuid = module.UniqueModuleId
            };

            int? systemModuleId = null;
            CloudCoreDB.Context.Cloudcore_SystemModuleUpload(module.AssemblyName, module.UniqueModuleId, ref systemModuleId);

            //The bottom statement should always be true, I cannot see why the Exception would ever be thrown...
            //if (systemModuleId.GetValueOrDefault(0) > 0)
            module.SystemModuleIdOnDatbase = systemModuleId.Value;
            //else
            //    throw new Exception("Could not register the CloudCore module \"" + module.AssemblyName +
            //                        "\" in the database. Reason unknown.");
        }
Пример #16
0
 private void EnumerateModuleCustomTaskLists(CloudCoreModule module)
 {
     var customQueries = TaskListQueryList.CustomQueryList as List<ITaskListQuery>;
     customQueries.AddRange(module.GetCustomQueryList());
 }
Пример #17
0
        private static void DeployModuleDashboards(CloudCoreModule module)
        {
            var dashboards = (from a in module.Assembly.GetTypes()
                              where a.IsClass && !a.IsAbstract && a.GetInterfaces().Contains(typeof(IDashboard))
                              select a).ToList();

            foreach (var dbDashboard in dashboards.Select(dashboard => new DBDashboard(dashboard, module.Assembly)))
            {
                dbDashboard.Deploy();
            }
        }