Example #1
0
        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>();
        }
Example #2
0
 public ShowRepository(TVMazeScrapperDBContext dbContext, ILoggerFactory loggerFactory)
 {
     this.dbContext     = dbContext;
     this.loggerFactory = loggerFactory;
 }
Example #3
0
 public PersonRepository(TVMazeScrapperDBContext dbContext)
 {
     this.dbContext = dbContext;
 }