Skip to content

Commit

Permalink
Merge branch 'mirolimmajidov-acm1-361'
Browse files Browse the repository at this point in the history
  • Loading branch information
MirolimMajidov committed Dec 27, 2024
2 parents f77f1c2 + 388192e commit 885e0d7
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/EventBus.RabbitMQ.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AlifCapital.EventStorage" Version="9.0.8" />
<PackageReference Include="AlifCapital.EventStorage" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.0" />
Expand Down
2 changes: 1 addition & 1 deletion src/Subscribers/Consumers/EventConsumerService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ private async Task Consumer_Received(object sender, BasicDeliverEventArgs eventA
receivedEvent!.EventId = eventId;
receivedEvent!.Headers = headers;

EventSubscriberManager.OnExecutingSubscribedEvent(receivedEvent, _connectionOptions.VirtualHostSettings.VirtualHost);
EventSubscriberManager.OnExecutingSubscribedEvent(receivedEvent, _connectionOptions.VirtualHostSettings.VirtualHost, scope.ServiceProvider);

var eventHandlerSubscriber = scope.ServiceProvider.GetRequiredService(info.eventHandlerType);
var handleMethod = info.eventHandlerType.GetMethod(HandlerMethodName);
Expand Down
13 changes: 5 additions & 8 deletions src/Subscribers/Managers/EventSubscriberManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,18 +100,15 @@ public void CreateConsumerForEachQueueAndStartReceivingEvents()
/// </summary>
/// <param name="event">Executing an event</param>
/// <param name="virtualHostName">The name of virtual host to being able to get a system name that the event published by it.</param>
public static void OnExecutingSubscribedEvent(ISubscribeEvent @event, string virtualHostName)
/// <param name="serviceProvider">The IServiceProvider used to resolve dependencies from the scope.</param>
public static void OnExecutingSubscribedEvent(ISubscribeEvent @event, string virtualHostName,
IServiceProvider serviceProvider)
{
if (ExecutingSubscribedEvent is null)
return;

var systemName = virtualHostName.TrimStart('/');
var eventArgs = new SubscribedMessageBrokerEventArgs
{
Event = @event,
SystemName = systemName
};

var eventArgs = new SubscribedMessageBrokerEventArgs(@event, systemName, serviceProvider);
ExecutingSubscribedEvent.Invoke(null, eventArgs);
}

Expand All @@ -130,7 +127,7 @@ public static void HandleExecutingReceivedEvent(object sender, ReceivedEventArgs
? info.eventSettings.VirtualHostSettings.VirtualHost
: string.Empty;

OnExecutingSubscribedEvent(@event, virtualHostName);
OnExecutingSubscribedEvent(@event, virtualHostName, e.ServiceProvider);
}
}
}
16 changes: 14 additions & 2 deletions src/Subscribers/Models/SubscribedMessageBrokerEventArgs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,22 @@ public class SubscribedMessageBrokerEventArgs : EventArgs
/// <summary>
/// Executing received event.
/// </summary>
public required ISubscribeEvent Event { get; init; }
public ISubscribeEvent Event { get; }

/// <summary>
/// The name of system that the event published by it.
/// </summary>
public required string SystemName { get; init; }
public string SystemName { get; }

/// <summary>
/// The <see cref="IServiceProvider"/> used to resolve dependencies from the scope.
/// </summary>
public IServiceProvider ServiceProvider { get; }

public SubscribedMessageBrokerEventArgs(ISubscribeEvent @event, string systemName, IServiceProvider serviceProvider)
{
Event = @event;
SystemName = systemName;
ServiceProvider = serviceProvider;
}
}

0 comments on commit 885e0d7

Please sign in to comment.