static void ConfigureServices(ServiceCollection serviceCollection) { var configBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); var configuration = configBuilder.Build(); var connectionStr = configuration.GetConnectionString("DefaultConnection"); serviceCollection.AddDbContext <TVMazeScrapperDBContext>(options => options.UseSqlServer(connectionStr)) .AddTransient <IShowRepository, ShowRepository>() .AddTransient <IPersonRepository, PersonRepository>() .AddTransient <IScraper, Scraper>() .AddTransient <ITVMazeService, TVMazeService>() .AddTransient <ITVMazeService, TVMazeService>() .AddSingleton(new LoggerFactory() .AddConsole(configuration.GetSection("Logging")) .AddDebug()) .AddLogging(); serviceCollection.AddHttpClient <TVMazeHttpClient>(client => { client.BaseAddress = new Uri("https://api.tvmaze.com/"); client.DefaultRequestHeaders.Add("Accept", "application/json"); client.DefaultRequestHeaders.Add("User-Agent", "TVMazeScraper"); }) .SetHandlerLifetime(TimeSpan.FromMinutes(5)) .AddPolicyHandler(TVMazeHttpClient.GetRetryPolicy()); var services = serviceCollection.BuildServiceProvider(); tvMazeService = services.GetService <ITVMazeService>(); tvMazeHttpClient = services.GetService <TVMazeHttpClient>(); scrapper = services.GetService <IScraper>(); dbContext = services.GetService <TVMazeScrapperDBContext>(); showRepository = services.GetService <IShowRepository>(); }
public ShowRepository(TVMazeScrapperDBContext dbContext, ILoggerFactory loggerFactory) { this.dbContext = dbContext; this.loggerFactory = loggerFactory; }
public PersonRepository(TVMazeScrapperDBContext dbContext) { this.dbContext = dbContext; }