diff --git a/dotnet/AipsCore/Application/Abstract/IMessagePublisher.cs b/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessagePublisher.cs similarity index 66% rename from dotnet/AipsCore/Application/Abstract/IMessagePublisher.cs rename to dotnet/AipsCore/Application/Abstract/MessageBroking/IMessagePublisher.cs index d09651b..30b2998 100644 --- a/dotnet/AipsCore/Application/Abstract/IMessagePublisher.cs +++ b/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessagePublisher.cs @@ -1,6 +1,4 @@ -using System.Runtime.Serialization; - -namespace AipsCore.Application.Abstract; +namespace AipsCore.Application.Abstract.MessageBroking; public interface IMessagePublisher { diff --git a/dotnet/AipsCore/Infrastructure/DI/AipsRegistrationExtensions.cs b/dotnet/AipsCore/Infrastructure/DI/AipsRegistrationExtensions.cs index 351ea14..49101de 100644 --- a/dotnet/AipsCore/Infrastructure/DI/AipsRegistrationExtensions.cs +++ b/dotnet/AipsCore/Infrastructure/DI/AipsRegistrationExtensions.cs @@ -1,5 +1,7 @@ using AipsCore.Application.Abstract; +using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Common.Dispatcher; +using AipsCore.Infrastructure.MessageBroking.RabbitMQ; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -15,6 +17,9 @@ public static class AipsRegistrationExtensions services.AddPersistence(configuration); services.AddUserContext(configuration); + + services.AddSingleton(); + services.AddSingleton(); return services; } diff --git a/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqConnection.cs b/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqConnection.cs index a07a981..0a41c8d 100644 --- a/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqConnection.cs +++ b/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqConnection.cs @@ -18,10 +18,11 @@ public class RabbitMqConnection : IRabbitMqConnection { if (_connection is null) { - throw new InvalidOperationException($"RabbitMQ connection not created for {_configuration.GetEnvRabbitMqAmqpUri()}"); + await CreateConnectionAsync(); + //throw new InvalidOperationException($"RabbitMQ connection not created for {_configuration.GetEnvRabbitMqAmqpUri()}"); } - return await _connection.CreateChannelAsync(null, cancellationToken); + return await _connection!.CreateChannelAsync(null, cancellationToken); } public async Task CreateConnectionAsync() diff --git a/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs b/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs index bf3cc7c..c9cb674 100644 --- a/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs +++ b/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs @@ -1,6 +1,7 @@ using System.Text; using System.Text.Json; using AipsCore.Application.Abstract; +using AipsCore.Application.Abstract.MessageBroking; using RabbitMQ.Client; namespace AipsCore.Infrastructure.MessageBroking.RabbitMQ; diff --git a/dotnet/AipsWebApi/Controllers/UserController.cs b/dotnet/AipsWebApi/Controllers/UserController.cs index 746887f..2cc97f9 100644 --- a/dotnet/AipsWebApi/Controllers/UserController.cs +++ b/dotnet/AipsWebApi/Controllers/UserController.cs @@ -1,4 +1,5 @@ using AipsCore.Application.Abstract; +using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Common.Authentication; using AipsCore.Application.Models.User.Command.LogIn; using AipsCore.Application.Models.User.Command.SignUp; @@ -34,4 +35,11 @@ public class UserController : ControllerBase var result = await _dispatcher.Execute(command, cancellationToken); return Ok(result.Value); } + + [AllowAnonymous] + [HttpPost("test")] + public async Task Test(IMessagePublisher publisher) + { + await publisher.PublishAsync("test", "test.test", "Test poruka"); + } } \ No newline at end of file