Esempio n. 1
0
        public void ConfigureServices(IServiceCollection services)
        {
            ConfigureBaseServices(services);
            HostedDiscordBot.ConfigureServices(services);
            services.AddHostedService <HostedDiscordBot>();
            services.AddHostedService <ServicePreloader>();

            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => false;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddMemoryCache();
            services.AddResponseCaching();
            services.AddRouteAnalyzer();

            services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddXmlSerializerFormatters();

            services.AddAspAuth();

            services.AddLogging(logging => {
                //logging.AddConsole();
                logging.AddDebug();
            });

            var config = JsonConvert.DeserializeObject <Configuration>(File.ReadAllText(Configuration["BotConfigPath"]));

            services.AddSingleton(config);

            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie("Cookies").AddDiscord(d => {
                d.AppId     = config.Auth.ClientId;
                d.AppSecret = config.Auth.ClientSecret;
                d.Scope.Add("identify");
                d.SaveTokens = true;
            });

            services.AddSingleton <IUserContextBuilder, GraphQLUserContextBuilder>();

            //GraphQL setup
            GraphTypeTypeRegistry.Register <TimeSpan, TimeSpanMillisecondsGraphType>();
            services.AddSingleton <InjectedSchema>();
            services.AddSingleton <InjectedSchema.IRootQuery, StatusSchema>();
            services.AddSingleton <InjectedSchema.IRootQuery, RemindersQuerySchema>();
            services.AddSingleton <InjectedSchema.IRootMutation, RemindersMutationSchema>();

            services.AddGraphQLAuth();
            services.AddGraphQL(options => {
                options.EnableMetrics           = true;
                options.ExposeExceptions        = true;
                options.ComplexityConfiguration = new ComplexityConfiguration {
                    MaxDepth = 15
                };
            });
        }
Esempio n. 2
0
        public void ConfigureServices(IServiceCollection services)
        {
            ConfigureBaseServices(services);

            HostedDiscordBot.ConfigureServices(services);
            services.AddSingleton <HostedDiscordBot>();

            services.AddSingleton(Configuration);

            if (Configuration.Auth == null)
            {
                throw new InvalidOperationException("Cannot start bot: Config.Auth is null");
            }
        }