public static void Configuration(this IConfigurationBuilder builder, HostBuilderContext context) => builder .AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json") .AddEnvironmentVariables();
private static void ConfigureLogging(HostBuilderContext _, ILoggingBuilder logging) => logging.AddConsole();
private static void configureServices(HostBuilderContext hostContext, IServiceCollection services) { IConfiguration configuration = hostContext.Configuration; // --> Add: BrokerFactory depending on the environment. if (hostContext.HostingEnvironment.IsProduction()) { var brokerFactoryConfiguration = new BrokerFactoryConfiguration { Url = configuration.GetConnectionString("RabbitMQ"), SkipManagement = false, DefaultDeadLetterExchange = "message.morgue", DefaultDeadLetterQueue = "message.morgue.sink" }; services .AddSingleton(brokerFactoryConfiguration) .AddSingleton <IBrokerFactory, BrokerFactory>(); } else { // In-memory queuing. services.AddSingleton <IBrokerFactory, Queue.InMemory.BrokerFactory>(); // File system queuing. //services.AddSingleton<IBrokerFactory>(new Queue.FileSystem.BrokerFactory(@"d:\Downloads\Messages")); // Redis pub/sub messaging. //services.AddSingleton<IBrokerFactory>(new Queue.Redis.BrokerFactory()); var sbConfiguration = new Queue.Azure.ServiceBus.ServiceBusConfiguration { ConnectionString = configuration.GetConnectionString("ServiceBus"), SkipManagement = false }; // Azure queue. //services.AddSingleton<IBrokerFactory>(x => new Queue.Azure.ServiceBus.Queue.BrokerFactory(sbConfiguration)); // Azure topic. //services.AddSingleton<IBrokerFactory>(x => new Queue.Azure.ServiceBus.Topic.BrokerFactory(sbConfiguration)); } // --> Add: DelaySettings. services.AddSingleton(configuration.BindTo <DelaySettings>()); // --> Add: Message handlers with Scrutor. services.Scan(scan => scan .FromEntryAssembly() .AddClasses(classes => classes.AssignableTo(typeof(IMessageHandler <>))) //.UsingRegistrationStrategy(RegistrationStrategy.Append) // Default is Append. .AsImplementedInterfaces() .WithSingletonLifetime()); // Note: If the handler has scope dependencies, it should be present as a scope handler. // These handlers will be added by Scrutor. //services.AddSingleton<IMessageHandler<LoginMessage>, LoginMessageHandler>(); //services.AddSingleton<IMessageHandler<PurchaseMessage>, PurchaseMessageHandler>(); // --> Add: Background services. // Message consumers in BackgroundService. services.AddHostedService <ConsumerBackgroundService <LoginMessage> >(); services.AddHostedService <ConsumerBackgroundService <PurchaseMessage> >(); // Demo purpose. services.AddHostedService <ProducerBackgroundService>(); }
public override void Provide(HostBuilderContext context, IServiceCollection collection) { collection.AddSingleton <IDataStore>(f => new LiteDBDataStore(ConnectionString) ); }
protected virtual void BuildConfiguration(HostBuilderContext hostingContext, IConfigurationBuilder configApp) { //Not sure how to re-use the 'IConfigurationRoot BuildConfiguration(OptionsBase)' method above that is currently used in the stateless, shoot'n'forget code path }
public static void ConfigureLogging(HostBuilderContext hostingContext, LoggerConfiguration loggerConfiguration) { ConfigureLogging(hostingContext.Configuration, loggerConfiguration); }
public void ConfigureServices(IServiceCollection services, HostBuilderContext hostContext) { }
protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) { _auditingStore = Substitute.For <IAuditingStore>(); services.Replace(ServiceDescriptor.Singleton(_auditingStore)); base.ConfigureServices(context, services); }
public void Configurate(HostBuilderContext context, IServiceCollection services) { // do nothing }
private static void SetupConfiguration(HostBuilderContext context, IConfigurationBuilder builder) { builder.AddDockerDefaultSettings(context.HostingEnvironment); }
private static void ConfigureElasticSearch(HostBuilderContext hostContext, IServiceCollection services) { var configuration = hostContext.Configuration.GetSection("ElasticSearch").Get <ElasticSearchConfiguration>(); services.AddElasticSearch(configuration); }
private static void ConfigureRedis(HostBuilderContext hostContext, IServiceCollection services) { services.AddRedis(hostContext.Configuration.GetSection("Cache").Get <RedisConfig>()); }
/// <summary> /// Adds KeyVault configuration /// /// dotnet 5.0 style /// </summary> /// <param name="builder"></param> public static void AddKeyVault(HostBuilderContext context, IConfigurationBuilder configurationBuilder) { AddKeyVault(configurationBuilder, context.HostingEnvironment.ContentRootPath); }
private static void ConfigureServices(HostBuilderContext _, IServiceCollection services) { services.AddSingleton(BuildConfiguration()); services.AddHostedService <TestService>(); }
private static string GetInstrumentationKey(this HostBuilderContext context) { var applicationInsights = context.Configuration.GetSection("ApplicationInsights").Get <AppInsightsSection>(); return(applicationInsights.InstrumentationKey); }
private static void configureSerilog1(HostBuilderContext context, LoggerConfiguration configuration) => configuration.ReadFrom.Configuration(context.Configuration);
private static void ConfigureApplication(HostBuilderContext ctx, IConfigurationBuilder builder) { builder.AddSystemsManager("/Mackie/TodoistSync"); }
public static void ConfigureDiscordBot <TBotConfiguration>(this IServiceCollection services, HostBuilderContext context, DiscordBotHostingContext discordContext) where TBotConfiguration : DiscordBotBaseConfiguration, new() { services.Configure <CommandServiceConfiguration>(x => x.CooldownBucketKeyGenerator = CooldownBucketKeyGenerator.Instance); if (discordContext.OwnerIds != null) { services.Configure <TBotConfiguration>(x => x.OwnerIds = discordContext.OwnerIds); } if (!discordContext.UseMentionPrefix && (discordContext.Prefixes == null || !discordContext.Prefixes.Any())) { throw new InvalidOperationException($"No prefixes were specified for the {nameof(DefaultPrefixProvider)}."); } services.AddSingleton <IConfigureOptions <DefaultPrefixProviderConfiguration> >(services => new ConfigureOptions <DefaultPrefixProviderConfiguration>(x => { var prefixes = new List <IPrefix>(); if (discordContext.UseMentionPrefix) { if (services.GetService <Token>() is not BotToken botToken) { throw new InvalidOperationException("The mention prefix cannot be used without a bot token set."); } prefixes.Add(new MentionPrefix(botToken.Id)); } if (discordContext.Prefixes != null) { prefixes.AddRange(discordContext.Prefixes.Select(x => new StringPrefix(x))); } x.Prefixes = prefixes; })); services.AddHostedService <DiscordBotRunnerService>(); services.TryAddSingleton <DiscordBotMasterService>(); }
public static void AddConfiguration(HostBuilderContext hostingContext, IConfigurationBuilder configBuilder) { configBuilder.Sources.Clear(); configBuilder.AddJsonFile("appsettings.json", optional: false); }