Esempio n. 1
0
        private static ServiceProvider RegisterDependencyInjection()
        {
            var serviceCollection = new ServiceCollection();

            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json", true, true)
                                .Build();

            var olxConfig = new OlxConfiguration();

            configuration.Bind(olxConfig);
            serviceCollection.AddSingleton(olxConfig);

            var telegramConfig = new TelegramApiConfiguration();

            configuration.Bind(telegramConfig);
            serviceCollection.AddSingleton(telegramConfig);

            serviceCollection.AddHttpClient <TelegramClient>();

            serviceCollection.AddTransient <IProcessor, Processor>();

            serviceCollection.AddTransient <IScraper, Scraper.Adapters.Scraper>();
            serviceCollection.Decorate <IScraper, ScraperWithRetry>();

            return(serviceCollection.BuildServiceProvider());
        }
Esempio n. 2
0
        public TelegramClient(HttpClient client, TelegramApiConfiguration config)
        {
            Client = client ?? throw new ArgumentNullException(nameof(client));
            Config = config ?? throw new ArgumentNullException(nameof(config));

            client.BaseAddress = new Uri(config.TelegramApiUrl);
        }
Esempio n. 3
0
 public WebhookMiddleware(
     RequestDelegate next,
     TelegramApiConfiguration config,
     IWebhookHandler webhookHandler)
 {
     Next           = next ?? throw new System.ArgumentNullException(nameof(next));
     Config         = config ?? throw new System.ArgumentNullException(nameof(config));
     WebhookHandler = webhookHandler;
 }
        private void ConfigureDependecyInjection(IServiceCollection services)
        {
            var telegramConfig = new TelegramApiConfiguration();

            Configuration.Bind(telegramConfig);
            services.AddSingleton(telegramConfig);

            services.AddHttpClient <TelegramClient>();

            services.AddTransient <IWebhookHandler, WebhookHandler>();
        }