예제 #1
0
파일: Program.cs 프로젝트: CodyFraker/Fitz
        private IServiceProvider ConfigureServices()
        {
            this.dClient = new DiscordClient(new DiscordConfiguration
            {
#if DEBUG
                LogLevel = LogLevel.Debug,
#endif
                MessageCacheSize = 0,
                Token            = Environment.GetEnvironmentVariable("BOT_TOKEN"),
                TokenType        = TokenType.Bot,
            });

            this.dClient.DebugLogger.LogMessageReceived += this.ConvertToSerilog;

            IServiceCollection services = new ServiceCollection();

            // DB
            services.AddDbContextPool <FitzContext>(options => options.UseMySql(new FitzContextFactory().ConnectionString));
            services.AddSingleton <FitzContextFactory>();

            // General
            services.AddSingleton(this.dClient)
            .AddSingleton <FitzLog>()
            .AddSingleton <ActivityManager>();

            // Jobs
            services.AddSingleton <JobManager>();
            JobManager.AddJobs(ref services);

            Log.Information("Services configured");

            return(services.BuildServiceProvider());
        }