using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.Metrics; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Telegrator.Core; #pragma warning disable IDE0001 namespace Telegrator.Hosting; /// public class TelegramBotHostBuilder : ITelegramBotHostBuilder { private readonly IHostApplicationBuilder _innerBuilder; internal IHandlersCollection _handlers = null!; /// public IHandlersCollection Handlers => _handlers; /// public IServiceCollection Services => _innerBuilder.Services; /// public IConfigurationManager Configuration => _innerBuilder.Configuration; /// public ILoggingBuilder Logging => _innerBuilder.Logging; /// public IHostEnvironment Environment => _innerBuilder.Environment; /// public IDictionary Properties => _innerBuilder.Properties; /// public IMetricsBuilder Metrics => _innerBuilder.Metrics; /// /// Initializes a new instance of the class. /// /// public TelegramBotHostBuilder(IHostApplicationBuilder hostApplicationBuilder) { _innerBuilder = hostApplicationBuilder ?? throw new ArgumentNullException(nameof(hostApplicationBuilder)); } /// /// Initializes a new instance of the class. /// /// /// public TelegramBotHostBuilder(IHostApplicationBuilder hostApplicationBuilder, IHandlersCollection handlers) { _innerBuilder = hostApplicationBuilder ?? throw new ArgumentNullException(nameof(hostApplicationBuilder)); _handlers = handlers ?? throw new ArgumentNullException(nameof(handlers)); } /// public void ConfigureContainer(IServiceProviderFactory factory, Action? configure = null) where TContainerBuilder : notnull { _innerBuilder.ConfigureContainer(factory, configure); } }