Exemple #1
0
        private IEnumerable <Type> GetAllJobTypes(IModulesHandler modulesHandler)
        {
            var jobType = typeof(IJob);

            return(modulesHandler.LoadedModuleAssemblies
                   .Union(new List <Assembly> {
                typeof(CommonSettings).Assembly
            })
                   .SelectMany(a => a.GetTypes())
                   .Where(t => t.IsAssignableTo(jobType) && !t.IsAbstract));
        }
Exemple #2
0
        private async void StartAllJobs(IServiceProvider serviceProvider, IModulesHandler modulesHandler)
        {
            try
            {
                await modulesHandler.LoadModulesTaskSource.Task;
                // Delay to make sure everythings loaded
                await Task.Delay(5000);

                var jobTypes = GetAllJobTypes(modulesHandler);
                var jobs     = CreateJobs(serviceProvider, jobTypes);

                foreach (var job in jobs)
                {
                    job.Start();
                }
            }
            catch (Exception ex)
            {
                ConsoleHelper.Log(LogSeverity.Error, LogSource.Core, "Loading all jobs failed.", ex);
            }
        }
Exemple #3
0
 public ContentService(IModulesHandler modulesHandler, IGuildsHandler guildsHandler)
 => (_modulesHandler, _guildsHandler) = (modulesHandler, guildsHandler);
 public GuildModuleCommands(IModulesHandler modulesHandler)
 => _modulesHandler = modulesHandler;
Exemple #5
0
 public JobsHandler(IServiceProvider serviceProvider, IModulesHandler modulesHandler)
 {
     StartAllJobs(serviceProvider, modulesHandler);
 }
Exemple #6
0
 public SettingsService(IGuildsHandler guildsHandler, IModulesHandler modulesHandler, ISettingsHandler settingsHandler)
 => (_guildsHandler, _modulesHandler, _settingsHandler) = (guildsHandler, modulesHandler, settingsHandler);