public MenuRoot(CloudCoreModule module) { ActionGuid = Guid.Empty; ParentFolderGuid = Guid.Empty; ActionTitle = "Menu Options"; SystemModule = module; Environment.LoadedModuleActions.AddAction(this); Root = this; }
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)); }
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; } } }
private static ModuleAction CreateNewModuleRoot(CloudCoreModule module, IModuleConfiguration moduleConfiguration) { var moduleRoot = new MenuRoot(module); return moduleRoot; }
private static ModuleAction GetModuleRoot(CloudCoreModule module, IModuleConfiguration moduleConfiguration) { return Environment.LoadedModuleActions.GetRoot() ?? CreateNewModuleRoot(module, moduleConfiguration); }
internal static void AddModuleActions(CloudCoreModule module, IModuleConfiguration moduleConfiguration) { var moduleRoot = GetModuleRoot(module, moduleConfiguration); moduleConfiguration.LoadModuleActions(moduleRoot as MenuRoot); }
protected IModuleConfiguration FindConfigInModule(CloudCoreModule module) { //return Environment.GetModuleActionsConfiguration(module); return module.ActionsConfiguration(); }
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; }
private void RegisterModuleActions(CloudCoreModule module) { var configuration = module.ActionsConfiguration(); if (configuration != null) MenuRoot.AddModuleActions(module, configuration); }
public ModuleRegistrationService(CloudCoreModule module) { this.module = module; }
public static void AdditionalConfiguration(CloudCoreModule module) { module.AdditionalIoCConfiguration(container); }
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; }
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) { }
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."); }
private void EnumerateModuleCustomTaskLists(CloudCoreModule module) { var customQueries = TaskListQueryList.CustomQueryList as List<ITaskListQuery>; customQueries.AddRange(module.GetCustomQueryList()); }
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(); } }