Browse Source

Updated OrderingIntegrationEvent svc

pull/813/head
Ramón Tomás 6 years ago
parent
commit
9adda02b18
2 changed files with 13 additions and 4 deletions
  1. +11
    -4
      src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs
  2. +2
    -0
      src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs

+ 11
- 4
src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs View File

@ -9,6 +9,7 @@ using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
using System;
using System.Data.Common;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
namespace Ordering.API.Application.IntegrationEvents
@ -35,15 +36,21 @@ namespace Ordering.API.Application.IntegrationEvents
public async Task PublishThroughEventBusAsync(IntegrationEvent evt)
{
await SaveEventAndOrderingContextChangesAsync(evt);
await SaveEventAsync(evt);
_eventBus.Publish(evt);
await _eventLogService.MarkEventAsPublishedAsync(evt);
}
private async Task SaveEventAndOrderingContextChangesAsync(IntegrationEvent evt)
private async Task SaveEventAsync(IntegrationEvent evt)
{
await _orderingContext.SaveChangesAsync();
await _eventLogContext.SaveChangesAsync();
var strategy = _orderingContext.Database.CreateExecutionStrategy();
await strategy.ExecuteAsync(async () =>
{
await _orderingContext.BeginTransactionAsync();
await _eventLogService.SaveEventAsync(evt, _orderingContext.GetCurrentTransaction.GetDbTransaction());
await _orderingContext.CommitTransactionAsync();
});
}
}
}

+ 2
- 0
src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs View File

@ -29,6 +29,8 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure
private OrderingContext(DbContextOptions<OrderingContext> options) : base (options) { }
public IDbContextTransaction GetCurrentTransaction => _currentTransaction;
public OrderingContext(DbContextOptions<OrderingContext> options, IMediator mediator) : base(options)
{
_mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));


Loading…
Cancel
Save