Standard names fix
This commit is contained in:
parent
6c0838399b
commit
1a9adad2f4
@ -1,16 +0,0 @@
|
|||||||
namespace SagaManager.IntegrationEvents
|
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
public class ConfirmGracePeriodEvent : IConfirmGracePeriodEvent
|
|
||||||
{
|
|
||||||
private readonly IEventBus _eventBus;
|
|
||||||
|
|
||||||
public ConfirmGracePeriodEvent(IEventBus eventBus) =>
|
|
||||||
_eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus));
|
|
||||||
|
|
||||||
public void PublishThroughEventBus(IntegrationEvent evt) => _eventBus.Publish(evt);
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,10 +5,10 @@
|
|||||||
// Integration Events notes:
|
// Integration Events notes:
|
||||||
// An Event is “something that has happened in the past”, therefore its name has to be
|
// An Event is “something that has happened in the past”, therefore its name has to be
|
||||||
// An Integration Event is an event that can cause side effects to other microsrvices, Bounded-Contexts or external systems.
|
// An Integration Event is an event that can cause side effects to other microsrvices, Bounded-Contexts or external systems.
|
||||||
public class ConfirmGracePeriodIntegrationEvent : IntegrationEvent
|
public class ConfirmGracePeriodCommandMsg : IntegrationEvent
|
||||||
{
|
{
|
||||||
public int OrderId { get;}
|
public int OrderId { get;}
|
||||||
|
|
||||||
public ConfirmGracePeriodIntegrationEvent(int orderId) => OrderId = orderId;
|
public ConfirmGracePeriodCommandMsg(int orderId) => OrderId = orderId;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,9 +0,0 @@
|
|||||||
namespace SagaManager.IntegrationEvents
|
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
|
|
||||||
public interface IConfirmGracePeriodEvent
|
|
||||||
{
|
|
||||||
void PublishThroughEventBus(IntegrationEvent evt);
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,10 @@
|
|||||||
|
namespace SagaManager.IntegrationEvents
|
||||||
|
{
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
||||||
|
|
||||||
|
public interface ISagaManagingIntegrationEventService
|
||||||
|
{
|
||||||
|
Task PublishThroughEventBusAsync(IntegrationEvent evt);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
namespace SagaManager.IntegrationEvents
|
||||||
|
{
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
||||||
|
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
||||||
|
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services;
|
||||||
|
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class SagaManagingIntegrationEventService : ISagaManagingIntegrationEventService
|
||||||
|
{
|
||||||
|
private readonly Func<DbConnection, IIntegrationEventLogService> _integrationEventLogServiceFactory;
|
||||||
|
private readonly IEventBus _eventBus;
|
||||||
|
private readonly OrderingContext _orderingContext;
|
||||||
|
private readonly IIntegrationEventLogService _eventLogService;
|
||||||
|
|
||||||
|
public SagaManagingIntegrationEventService(IEventBus eventBus, OrderingContext orderingContext,
|
||||||
|
Func<DbConnection, IIntegrationEventLogService> integrationEventLogServiceFactory)
|
||||||
|
{
|
||||||
|
_orderingContext = orderingContext ?? throw new ArgumentNullException(nameof(orderingContext));
|
||||||
|
_integrationEventLogServiceFactory = integrationEventLogServiceFactory ?? throw new ArgumentNullException(nameof(integrationEventLogServiceFactory));
|
||||||
|
_eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus));
|
||||||
|
_eventLogService = _integrationEventLogServiceFactory(_orderingContext.Database.GetDbConnection());
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task PublishThroughEventBusAsync(IntegrationEvent evt)
|
||||||
|
{
|
||||||
|
_eventBus.Publish(evt);
|
||||||
|
|
||||||
|
await _eventLogService.MarkEventAsPublishedAsync(evt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -55,7 +55,7 @@ namespace SagaManager
|
|||||||
.AddOptions()
|
.AddOptions()
|
||||||
.Configure<SagaManagerSettings>(Configuration)
|
.Configure<SagaManagerSettings>(Configuration)
|
||||||
.AddSingleton<ISagaManagerService, SagaManagerService>()
|
.AddSingleton<ISagaManagerService, SagaManagerService>()
|
||||||
.AddSingleton<IConfirmGracePeriodEvent, ConfirmGracePeriodEvent>()
|
.AddSingleton<ISagaManagingIntegrationEventService, SagaManagingIntegrationEventService>()
|
||||||
.AddSingleton<IEventBus, EventBusRabbitMQ>()
|
.AddSingleton<IEventBus, EventBusRabbitMQ>()
|
||||||
.AddSingleton<IEventBusSubscriptionsManager, InMemoryEventBusSubscriptionsManager>()
|
.AddSingleton<IEventBusSubscriptionsManager, InMemoryEventBusSubscriptionsManager>()
|
||||||
.AddSingleton<IRabbitMQPersistentConnection>(sp =>
|
.AddSingleton<IRabbitMQPersistentConnection>(sp =>
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\..\BuildingBlocks\EventBus\EventBusRabbitMQ\EventBusRabbitMQ.csproj" />
|
<ProjectReference Include="..\..\..\BuildingBlocks\EventBus\EventBusRabbitMQ\EventBusRabbitMQ.csproj" />
|
||||||
<ProjectReference Include="..\..\..\BuildingBlocks\EventBus\EventBus\EventBus.csproj" />
|
<ProjectReference Include="..\..\..\BuildingBlocks\EventBus\EventBus\EventBus.csproj" />
|
||||||
|
<ProjectReference Include="..\..\..\BuildingBlocks\EventBus\IntegrationEventLogEF\IntegrationEventLogEF.csproj" />
|
||||||
|
<ProjectReference Include="..\..\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace SagaManager.Services
|
namespace SagaManager.Services
|
||||||
@ -13,15 +14,15 @@ namespace SagaManager.Services
|
|||||||
public class SagaManagerService : ISagaManagerService
|
public class SagaManagerService : ISagaManagerService
|
||||||
{
|
{
|
||||||
private readonly SagaManagerSettings _settings;
|
private readonly SagaManagerSettings _settings;
|
||||||
private readonly IConfirmGracePeriodEvent _confirmGracePeriodEvent;
|
private readonly ISagaManagingIntegrationEventService _sagaManagingIntegrationEventService;
|
||||||
private readonly ILogger<SagaManagerService> _logger;
|
private readonly ILogger<SagaManagerService> _logger;
|
||||||
|
|
||||||
public SagaManagerService(IOptions<SagaManagerSettings> settings,
|
public SagaManagerService(IOptions<SagaManagerSettings> settings,
|
||||||
IConfirmGracePeriodEvent confirmGracePeriodEvent,
|
ISagaManagingIntegrationEventService sagaManagingIntegrationEventService,
|
||||||
ILogger<SagaManagerService> logger)
|
ILogger<SagaManagerService> logger)
|
||||||
{
|
{
|
||||||
_settings = settings.Value;
|
_settings = settings.Value;
|
||||||
_confirmGracePeriodEvent = confirmGracePeriodEvent;
|
_sagaManagingIntegrationEventService = sagaManagingIntegrationEventService;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,12 +60,12 @@ namespace SagaManager.Services
|
|||||||
return orderIds;
|
return orderIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Publish(int orderId)
|
private async Task Publish(int orderId)
|
||||||
{
|
{
|
||||||
var confirmGracePeriodEvent = new ConfirmGracePeriodIntegrationEvent(orderId);
|
var confirmGracePeriodEvent = new ConfirmGracePeriodCommandMsg(orderId);
|
||||||
|
|
||||||
// Publish through the Event Bus
|
// Publish through the Event Bus
|
||||||
_confirmGracePeriodEvent.PublishThroughEventBus(confirmGracePeriodEvent);
|
await _sagaManagingIntegrationEventService.PublishThroughEventBusAsync(confirmGracePeriodEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user