public static IServiceCollection AddSwaggerOpenApi(this IServiceCollection services, IConfiguration configuration) { var swaggerSettings = new SwaggerSettings(); configuration.Bind(nameof(SwaggerSettings), swaggerSettings); services.AddSingleton(swaggerSettings); var apiSettings = new TheGameSettings(); configuration.Bind(nameof(TheGameSettings), apiSettings); services.AddSwaggerGen(options => { options.SwaggerDoc(apiSettings.CurrentVersion, new OpenApiInfo() { Title = apiSettings.Title, Version = apiSettings.CurrentVersion }); options.ExampleFilters(); var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); options.IncludeXmlComments(xmlPath); }); services.AddSwaggerExamplesFromAssemblyOf <Startup>(); return(services); }
public ViewCacheDataController( ITheGameCacheProvider cacheProvider, TheGameSettings settings, IMediator mediator) : base(mediator) { _cacheProvider = cacheProvider ?? throw ArgNullEx(nameof(cacheProvider)); _settings = settings ?? throw ArgNullEx(nameof(settings)); }
private static void LoadCache(ITheGameCacheProvider cacheProvider, TheGameSettings settings, ILogger <IHost> logger) { var factory = DbProviderFactories.GetFactory(settings.DataProviderName); var connection = factory.CreateConnection(); connection.ConnectionString = settings.DbConnectionString; string sql; if (!cacheProvider.GetPlayersListAsync(CancellationToken.None).GetAwaiter().GetResult()?.Any() ?? true) { logger.LogInformation("Loading cache with player data. Please wait..."); sql = $"SELECT {nameof(Player.Id)} FROM dbo.{nameof(Player)}s"; try { connection.Open(); var players = connection.Query <long>(sql); cacheProvider.StorePlayersListAsync(players, null, CancellationToken.None).GetAwaiter().GetResult(); } catch (Exception exc) { logger?.LogError(exc, "Unable to load cache with player data!"); } finally { if (connection.State == ConnectionState.Open) { connection.Close(); } } } if (!cacheProvider.GetGamesListAsync(CancellationToken.None).GetAwaiter().GetResult()?.Any() ?? true) { logger.LogInformation("Loading cache with game data. Please wait..."); sql = $"SELECT {nameof(Game.Id)} FROM dbo.{nameof(Game)}s"; try { connection.Open(); var games = connection.Query <long>(sql); cacheProvider.StoreGamesListAsync(games, null, CancellationToken.None).GetAwaiter().GetResult(); } catch (Exception exc) { logger?.LogError(exc, "Unable to load cache with game data!"); } finally { if (connection.State == ConnectionState.Open) { connection.Close(); } } } }
public static IServiceCollection AddSharedKernel(this IServiceCollection services, IConfiguration configuration) { var settings = new TheGameSettings(); configuration.Bind(nameof(TheGameSettings), settings); services.AddSingleton(settings); return(services); }
public GameMatchesDataDbFlushingService( ILogger <GameMatchesDataDbFlushingService> logger, ITheGameCacheProvider cacheProvider, TheGameSettings settings, IDateTimeProvider dateTime) { _logger = logger ?? throw ArgNullEx(nameof(logger)); _cacheProvider = cacheProvider ?? throw ArgNullEx(nameof(cacheProvider)); _settings = settings ?? throw ArgNullEx(nameof(settings)); _dateTime = dateTime ?? throw ArgNullEx(nameof(dateTime)); _commandsRepository = RepositoryFactory.GetCommandsRepository(_settings); _queriesRepository = RepositoryFactory.GetQueriesRepository(settings); }
public TheGameCommandsRepository( TheGameSettings settings) { _settings = settings ?? throw ArgNullEx(nameof(settings)); }
public TheGameCacheProvider(IMemoryCache memoryCache, TheGameSettings settings) : base(memoryCache) { _settings = settings ?? throw ArgNullEx(nameof(settings)); }
public static ITheGameCommandsRepository GetCommandsRepository(TheGameSettings settings) => new TheGameCommandsRepository(settings);
public static ITheGameQueriesRepository GetQueriesRepository(TheGameSettings settings) => new TheGameQueriesRepository(settings);
public LeaderboardsController( IMediator mediator, TheGameSettings settings) : base(mediator) { _settings = settings ?? throw ArgNullEx(nameof(settings)); }