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()); }
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); }
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>(); }