protected virtual void Dispose(bool disposing) { if (disposing) { if (sched != null) { sched.Dispose(); sched = null; } } }
private async Task Run(bool fastShutdown) { Console.WriteLine($"{(fastShutdown ? "Fast" : "Slow")} shutdown started"); if (!fastShutdown) { // Shutdown the Scheduler await QuartzScheduler.Dispose(); // Shutdown the DiscordBot await DiscordBot.Dispose(); } else { // Create a backup of the current config.json just in case File.Copy(Boot.LOCAL_CONFIGURATION, Boot.LOCAL_CONFIGURATION_AUTOMATIC_BACKUP, true); } // Shutdown Twitter TwitterManager.Dispose(); // Shutdown DigitalOcean DoApi.Dispose(); // Shutdown S3 S3Api.Dispose(); // Shutdown BCAT BcatApi.Dispose(); // Shutdown DAuth DAuthApi.Dispose(); // Shutdown the HandlerMapper HandlerMapper.Dispose(); // Shutdown the KeysetManager KeysetManager.Dispose(); // Shutdown anything app-specific ShutdownAppSpecificItems(); // Save the configuration Configuration.LoadedConfiguration.Write(); if (!fastShutdown) { // Wait a little while await Task.Delay(1000 *ShutdownWaitTime); } Console.WriteLine("Shutdown complete"); }