diff --git a/Directory.Packages.props b/Directory.Packages.props index 11eb8c4..e28558e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,6 +7,7 @@ + diff --git a/src/Nocr.TelegramListener.AppServices/UpdateListeners/Handlers/Implementation/NewMessageHandler.cs b/src/Nocr.TelegramListener.AppServices/UpdateListeners/Handlers/Implementation/NewMessageHandler.cs index d9a4807..5e7e697 100644 --- a/src/Nocr.TelegramListener.AppServices/UpdateListeners/Handlers/Implementation/NewMessageHandler.cs +++ b/src/Nocr.TelegramListener.AppServices/UpdateListeners/Handlers/Implementation/NewMessageHandler.cs @@ -28,9 +28,9 @@ public sealed class NewMessageHandler : INewMessageHandler switch (messageBase) { case Message m: - if (!string.IsNullOrWhiteSpace(m.message)) + if (string.IsNullOrWhiteSpace(m.message)) break; - + _logger.LogInformation("{From} in {Chat} > {MessageText}", m.from_id.Peer(_telegramRegistry.Users, _telegramRegistry.Chats) ?? m.post_author, m.peer_id.Peer(_telegramRegistry.Users, _telegramRegistry.Chats), @@ -42,7 +42,7 @@ public sealed class NewMessageHandler : INewMessageHandler Text = m.message, OccuredDateTime = _dateProvider.UtcNow }; - await _bus.Publish(@event); + await _bus.Advanced.Topics.Publish("nocr.telegram.listener", @event); break; case MessageService ms: _logger.LogInformation("{From} in {Chat} > [{Action}]", diff --git a/src/Nocr.TelegramListener.Async.Api.Contracts/Nocr.TelegramListener.Async.Api.Contracts.csproj b/src/Nocr.TelegramListener.Async.Api.Contracts/Nocr.TelegramListener.Async.Api.Contracts.csproj index 17d0997..13da837 100644 --- a/src/Nocr.TelegramListener.Async.Api.Contracts/Nocr.TelegramListener.Async.Api.Contracts.csproj +++ b/src/Nocr.TelegramListener.Async.Api.Contracts/Nocr.TelegramListener.Async.Api.Contracts.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Nocr.TelegramListener.Core/Options/RebusRabbitMqOptions.cs b/src/Nocr.TelegramListener.Core/Options/RebusRabbitMqOptions.cs new file mode 100644 index 0000000..973d15a --- /dev/null +++ b/src/Nocr.TelegramListener.Core/Options/RebusRabbitMqOptions.cs @@ -0,0 +1,12 @@ +namespace Nocr.TelegramListener.Core.Options; + +public sealed class RebusRabbitMqOptions +{ + public string ConnectionString { get; set; } + + public string InputQueueName { get; set; } + + public string DirectExchangeName { get; set; } + + public string TopicsExchangeName { get; set; } +} \ No newline at end of file diff --git a/src/Nocr.TelegramListener.Host/Infrastructure/HostBuilderFactory.cs b/src/Nocr.TelegramListener.Host/Infrastructure/HostBuilderFactory.cs index b24882f..d4173c3 100644 --- a/src/Nocr.TelegramListener.Host/Infrastructure/HostBuilderFactory.cs +++ b/src/Nocr.TelegramListener.Host/Infrastructure/HostBuilderFactory.cs @@ -12,7 +12,7 @@ public class HostBuilderFactory where TStartup : class if (!string.IsNullOrWhiteSpace(baseDirectory)) configurationBuilder.SetBasePath(baseDirectory); - configurationBuilder.AddJsonFile("appsettings.protected.json", false); + configurationBuilder.AddJsonFile("appsettings.protected.json", true); }) .ConfigureWebHostDefaults(host => { host.UseStartup(); }) .UseSerilog((ctx, logBuilder) => diff --git a/src/Nocr.TelegramListener.Host/Infrastructure/Startup.cs b/src/Nocr.TelegramListener.Host/Infrastructure/Startup.cs index 02b9a97..e4c499d 100644 --- a/src/Nocr.TelegramListener.Host/Infrastructure/Startup.cs +++ b/src/Nocr.TelegramListener.Host/Infrastructure/Startup.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.Options; using Nocr.TelegramListener.AppServices; using Nocr.TelegramListener.Async.Api.Contracts.Events; using Nocr.TelegramListener.Core.Dates; +using Nocr.TelegramListener.Core.Options; using Rebus.Config; using Rebus.Routing.TypeBased; using Rebus.Serialization.Json; @@ -25,22 +26,18 @@ public class Startup services.Configure(Configuration.GetSection(nameof(RebusRabbitMqOptions))); services.AddRebus((builder, ctx) => builder.Transport(t => - t.UseRabbitMq(ctx.GetRequiredService>().Value.ConnectionString, - ctx.GetRequiredService>().Value.InputQueueName) + { + var rebusOptions = ctx.GetRequiredService>().Value; + t.UseRabbitMq(rebusOptions.ConnectionString, rebusOptions.InputQueueName) .DefaultQueueOptions(queue => queue.SetDurable(true)) - .ExchangeNames("nocr.direct", "nocr.topics")) + .ExchangeNames(rebusOptions.DirectExchangeName, rebusOptions.TopicsExchangeName); + }) .Serialization(s => s.UseSystemTextJson()) - .Logging(l => l.Serilog())); + .Logging(l => l.Serilog()) + .Routing(r => r.TypeBased())); } public void Configure(IApplicationBuilder app) { } - - public sealed class RebusRabbitMqOptions - { - public string ConnectionString { get; set; } - - public string InputQueueName { get; set; } - } } \ No newline at end of file diff --git a/src/Nocr.TelegramListener.Host/Nocr.TelegramListener.Host.csproj b/src/Nocr.TelegramListener.Host/Nocr.TelegramListener.Host.csproj index c046fd2..b7c06e2 100644 --- a/src/Nocr.TelegramListener.Host/Nocr.TelegramListener.Host.csproj +++ b/src/Nocr.TelegramListener.Host/Nocr.TelegramListener.Host.csproj @@ -9,7 +9,6 @@ - diff --git a/src/Nocr.TelegramListener.Host/appsettings.json b/src/Nocr.TelegramListener.Host/appsettings.json index 06b4ea8..a2dcbf1 100644 --- a/src/Nocr.TelegramListener.Host/appsettings.json +++ b/src/Nocr.TelegramListener.Host/appsettings.json @@ -10,6 +10,8 @@ } }, "RebusRabbitMqOptions": { - "InputQueueName": "nocr.telegram.listener.queue" + "InputQueueName": "nocr.telegram.listener.queue", + "DirectExchangeName": "nocr.direct", + "TopicsExchangeName": "nocr.topics" } }