Пример #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <NewbieContext>(ServiceLifetime.Transient);
            services.AddDbContextFactory <NewbieContext>();
            services.AddLogging(b =>
            {
                b.ClearProviders();
                b.SetMinimumLevel(LogLevel.Trace);
                b.AddNLog(); // uses NLog.config?
            });

            var hc      = new HardcodedConfigure();
            var factory = OsuApiClientFactory.CreateFactory(hc.ApiKey);

            services.AddSingleton <IHttpApiFactory <IOsuApiClient> >(factory);
            services.AddScoped <IOsuApiClient>(c => c.GetService <IHttpApiFactory <IOsuApiClient> >().CreateHttpApi());

            services.AddTransient <QueryHelper>();

            services.AddTransient(typeof(Lazy <>), typeof(LazyService <>));

            services.AddSingleton <RandomNumberGenerator, RNGCryptoServiceProvider>();

            services.AddMemoryCache();

            services.AddTransient <IDataProvider, DataProvider>();
            services.AddTransient <DataMaintainer>();
        }
Пример #2
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <NewbieContext>(
                optionsBuilder =>
                optionsBuilder.UseMySql(
                    Configuration.GetConnectionString("NewbieDatabase"),
                    ServerVersion.Parse("5.7.36-mysql"),
                    options => options.EnableRetryOnFailure())
                .ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuting, LogLevel.Debug)))
                .ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuted, LogLevel.Debug))),
                ServiceLifetime.Transient);
            services.AddDbContextFactory <NewbieContext>(
                optionsBuilder =>
                optionsBuilder.UseMySql(
                    Configuration.GetConnectionString("NewbieDatabase"),
                    ServerVersion.Parse("5.7.36-mysql"),
                    options => options.EnableRetryOnFailure())
                .ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuting, LogLevel.Debug)))
                .ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuted, LogLevel.Debug))));
            services.AddLogging(b =>
            {
                b.ClearProviders();
                b.SetMinimumLevel(LogLevel.Trace);
                b.AddNLog(); // uses NLog.config?
            });

            var factory = OsuApiClientFactory.CreateFactory(Configuration.GetSection("Hydrant")["ApiKey"]);

            services.AddSingleton <IHttpApiFactory <IOsuApiClient> >(factory);
            services.AddScoped <IOsuApiClient>(c => c.GetService <IHttpApiFactory <IOsuApiClient> >().CreateHttpApi());

            services.AddTransient <QueryHelper>();

            services.AddTransient(typeof(Lazy <>), typeof(LazyService <>));

            services.AddSingleton(RandomNumberGenerator.Create());

            services.AddMemoryCache();

            services.AddTransient <IDataProvider, DataProvider>();
            services.AddTransient <DataMaintainer>();

            // Legacy
            services.AddTransient <INewbieDatabase, NewbieDatabase>();
            services.AddTransient <ILegacyDataProvider, DataProvider>(sp =>
            {
                var logger                = sp.GetService <ILogger <ILegacyDataProvider> >();
                var dbContext             = sp.GetService <NewbieContext>();
                var osuApiClient          = sp.GetService <IOsuApiClient>();
                var dataProvider          = new DataProvider(dbContext, osuApiClient);
                dataProvider.OnException += e => logger.LogError(e, "{message}", e.Message);
                return(dataProvider);
            });
            services.AddSingleton(OsuMixedApi.OsuApiClient.ClientUsingKey(Configuration.GetSection("Hydrant")["ApiKey"]));
        }
Пример #3
0
        static async Task Main(string[] args)
        {
            System.Console.WriteLine("Please provide API Key.");
            string        apiKey       = System.Console.ReadLine();
            var           factory      = OsuApiClientFactory.CreateFactory(new[] { "a", "b" });
            IOsuApiClient osuApiClient = factory.CreateHttpApi();
            var           user         = await osuApiClient.GetUser(6659067, Mode.Mania);

            var user2 = await osuApiClient.GetUser("bleatingsheep");

            var beatmaps = await osuApiClient.GetBeatmaps(Mode.Mania, false, DateTime.Now - TimeSpan.FromDays(2), 100);

            var s = await osuApiClient.GetScores(1, Mode.Standard, 100);
        }
        public static void SetApiKey(string apiKey)
        {
            OsuApi = OsuApiClient.ClientUsingKey(apiKey);

            s_osuApiFactory = OsuApiClientFactory.CreateFactory(apiKey);
        }