Skip to content

Commit e9cac86

Browse files
committed
Outbox
1 parent c200c01 commit e9cac86

File tree

15 files changed

+96
-80
lines changed

15 files changed

+96
-80
lines changed

src/Monolith/ClassifiedAds.Application/EventLogs/Commands/PublishEventsCommand.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,31 @@ public class PublishEventsCommandHandler : ICommandHandler<PublishEventsCommand>
1919
{
2020
private readonly ILogger<PublishEventsCommandHandler> _logger;
2121
private readonly IDateTimeProvider _dateTimeProvider;
22-
private readonly IRepository<OutboxEvent, Guid> _outboxEventRepository;
22+
private readonly IRepository<OutboxMessage, Guid> _outboxMessageRepository;
2323
private readonly IMessageBus _messageBus;
2424

2525
public PublishEventsCommandHandler(ILogger<PublishEventsCommandHandler> logger,
2626
IDateTimeProvider dateTimeProvider,
27-
IRepository<OutboxEvent, Guid> outboxEventRepository,
27+
IRepository<OutboxMessage, Guid> outboxMessageRepository,
2828
IMessageBus messageBus)
2929
{
3030
_logger = logger;
3131
_dateTimeProvider = dateTimeProvider;
32-
_outboxEventRepository = outboxEventRepository;
32+
_outboxMessageRepository = outboxMessageRepository;
3333
_messageBus = messageBus;
3434
}
3535

3636
public async Task HandleAsync(PublishEventsCommand command, CancellationToken cancellationToken = default)
3737
{
38-
var events = _outboxEventRepository.GetQueryableSet()
38+
var events = _outboxMessageRepository.GetQueryableSet()
3939
.Where(x => !x.Published)
4040
.OrderBy(x => x.CreatedDateTime)
4141
.Take(50)
4242
.ToList();
4343

4444
foreach (var eventLog in events)
4545
{
46-
var outbox = new PublishingOutBoxEvent
46+
var outbox = new PublishingOutboxMessage
4747
{
4848
Id = eventLog.Id.ToString(),
4949
EventType = eventLog.EventType,
@@ -55,7 +55,7 @@ public async Task HandleAsync(PublishEventsCommand command, CancellationToken ca
5555
await _messageBus.SendAsync(outbox, cancellationToken);
5656
eventLog.Published = true;
5757
eventLog.UpdatedDateTime = _dateTimeProvider.OffsetNow;
58-
await _outboxEventRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
58+
await _outboxMessageRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
5959
}
6060

6161
command.SentEventsCount = events.Count;

src/Monolith/ClassifiedAds.Application/FileEntries/EventHandlers/FileEntryCreatedEventHandler.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using ClassifiedAds.Domain.Identity;
66
using ClassifiedAds.Domain.Repositories;
77
using System;
8-
using System.Diagnostics;
98
using System.Threading;
109
using System.Threading.Tasks;
1110

@@ -15,15 +14,15 @@ public class FileEntryCreatedEventHandler : IDomainEventHandler<EntityCreatedEve
1514
{
1615
private readonly ICrudService<AuditLogEntry> _auditSerivce;
1716
private readonly ICurrentUser _currentUser;
18-
private readonly IRepository<OutboxEvent, Guid> _outboxEventRepository;
17+
private readonly IRepository<OutboxMessage, Guid> _outboxMessageRepository;
1918

2019
public FileEntryCreatedEventHandler(ICrudService<AuditLogEntry> auditSerivce,
2120
ICurrentUser currentUser,
22-
IRepository<OutboxEvent, Guid> outboxEventRepository)
21+
IRepository<OutboxMessage, Guid> outboxMessageRepository)
2322
{
2423
_auditSerivce = auditSerivce;
2524
_currentUser = currentUser;
26-
_outboxEventRepository = outboxEventRepository;
25+
_outboxMessageRepository = outboxMessageRepository;
2726
}
2827

2928
public async Task HandleAsync(EntityCreatedEvent<FileEntry> domainEvent, CancellationToken cancellationToken = default)
@@ -37,16 +36,15 @@ await _auditSerivce.AddOrUpdateAsync(new AuditLogEntry
3736
Log = domainEvent.Entity.AsJsonString(),
3837
}, cancellationToken);
3938

40-
await _outboxEventRepository.AddOrUpdateAsync(new OutboxEvent
39+
await _outboxMessageRepository.AddOrUpdateAsync(new OutboxMessage
4140
{
4241
EventType = EventTypeConstants.FileEntryCreated,
4342
TriggeredById = _currentUser.UserId,
4443
CreatedDateTime = domainEvent.EventDateTime,
4544
ObjectId = domainEvent.Entity.Id.ToString(),
4645
Payload = domainEvent.Entity.AsJsonString(),
47-
ActivityId = Activity.Current.Id,
4846
}, cancellationToken);
4947

50-
await _outboxEventRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
48+
await _outboxMessageRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
5149
}
5250
}

src/Monolith/ClassifiedAds.Application/FileEntries/EventHandlers/FileEntryDeletedEventHandler.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using ClassifiedAds.Domain.Identity;
66
using ClassifiedAds.Domain.Repositories;
77
using System;
8-
using System.Diagnostics;
98
using System.Threading;
109
using System.Threading.Tasks;
1110

@@ -15,15 +14,15 @@ public class FileEntryDeletedEventHandler : IDomainEventHandler<EntityDeletedEve
1514
{
1615
private readonly ICrudService<AuditLogEntry> _auditSerivce;
1716
private readonly ICurrentUser _currentUser;
18-
private readonly IRepository<OutboxEvent, Guid> _outboxEventRepository;
17+
private readonly IRepository<OutboxMessage, Guid> _outboxMessageRepository;
1918

2019
public FileEntryDeletedEventHandler(ICrudService<AuditLogEntry> auditSerivce,
2120
ICurrentUser currentUser,
22-
IRepository<OutboxEvent, Guid> outboxEventRepository)
21+
IRepository<OutboxMessage, Guid> outboxMessageRepository)
2322
{
2423
_auditSerivce = auditSerivce;
2524
_currentUser = currentUser;
26-
_outboxEventRepository = outboxEventRepository;
25+
_outboxMessageRepository = outboxMessageRepository;
2726
}
2827

2928
public async Task HandleAsync(EntityDeletedEvent<FileEntry> domainEvent, CancellationToken cancellationToken = default)
@@ -37,16 +36,15 @@ await _auditSerivce.AddOrUpdateAsync(new AuditLogEntry
3736
Log = domainEvent.Entity.AsJsonString(),
3837
}, cancellationToken);
3938

40-
await _outboxEventRepository.AddOrUpdateAsync(new OutboxEvent
39+
await _outboxMessageRepository.AddOrUpdateAsync(new OutboxMessage
4140
{
4241
EventType = EventTypeConstants.FileEntryDeleted,
4342
TriggeredById = _currentUser.UserId,
4443
CreatedDateTime = domainEvent.EventDateTime,
4544
ObjectId = domainEvent.Entity.Id.ToString(),
4645
Payload = domainEvent.Entity.AsJsonString(),
47-
ActivityId = Activity.Current.Id,
4846
}, cancellationToken);
4947

50-
await _outboxEventRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
48+
await _outboxMessageRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
5149
}
5250
}

src/Monolith/ClassifiedAds.Application/FileEntries/EventHandlers/FileEntryUpdatedEventHandler.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using ClassifiedAds.Domain.Identity;
66
using ClassifiedAds.Domain.Repositories;
77
using System;
8-
using System.Diagnostics;
98
using System.Threading;
109
using System.Threading.Tasks;
1110

@@ -15,15 +14,15 @@ public class FileEntryUpdatedEventHandler : IDomainEventHandler<EntityUpdatedEve
1514
{
1615
private readonly ICrudService<AuditLogEntry> _auditSerivce;
1716
private readonly ICurrentUser _currentUser;
18-
private readonly IRepository<OutboxEvent, Guid> _outboxEventRepository;
17+
private readonly IRepository<OutboxMessage, Guid> _outboxMessageRepository;
1918

2019
public FileEntryUpdatedEventHandler(ICrudService<AuditLogEntry> auditSerivce,
2120
ICurrentUser currentUser,
22-
IRepository<OutboxEvent, Guid> outboxEventRepository)
21+
IRepository<OutboxMessage, Guid> outboxMessageRepository)
2322
{
2423
_auditSerivce = auditSerivce;
2524
_currentUser = currentUser;
26-
_outboxEventRepository = outboxEventRepository;
25+
_outboxMessageRepository = outboxMessageRepository;
2726
}
2827

2928
public async Task HandleAsync(EntityUpdatedEvent<FileEntry> domainEvent, CancellationToken cancellationToken = default)
@@ -37,16 +36,15 @@ await _auditSerivce.AddOrUpdateAsync(new AuditLogEntry
3736
Log = domainEvent.Entity.AsJsonString(),
3837
}, cancellationToken);
3938

40-
await _outboxEventRepository.AddOrUpdateAsync(new OutboxEvent
39+
await _outboxMessageRepository.AddOrUpdateAsync(new OutboxMessage
4140
{
4241
EventType = EventTypeConstants.FileEntryUpdated,
4342
TriggeredById = _currentUser.UserId,
4443
CreatedDateTime = domainEvent.EventDateTime,
4544
ObjectId = domainEvent.Entity.Id.ToString(),
4645
Payload = domainEvent.Entity.AsJsonString(),
47-
ActivityId = Activity.Current.Id,
4846
}, cancellationToken);
4947

50-
await _outboxEventRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
48+
await _outboxMessageRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
5149
}
5250
}

src/Monolith/ClassifiedAds.Application/Products/EventHandlers/ProductCreatedEventHandler.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using ClassifiedAds.Domain.Identity;
66
using ClassifiedAds.Domain.Repositories;
77
using System;
8-
using System.Diagnostics;
98
using System.Threading;
109
using System.Threading.Tasks;
1110

@@ -15,15 +14,15 @@ public class ProductCreatedEventHandler : IDomainEventHandler<EntityCreatedEvent
1514
{
1615
private readonly ICrudService<AuditLogEntry> _auditSerivce;
1716
private readonly ICurrentUser _currentUser;
18-
private readonly IRepository<OutboxEvent, Guid> _outboxEventRepository;
17+
private readonly IRepository<OutboxMessage, Guid> _outboxMessageRepository;
1918

2019
public ProductCreatedEventHandler(ICrudService<AuditLogEntry> auditSerivce,
2120
ICurrentUser currentUser,
22-
IRepository<OutboxEvent, Guid> outboxEventRepository)
21+
IRepository<OutboxMessage, Guid> outboxMessageRepository)
2322
{
2423
_auditSerivce = auditSerivce;
2524
_currentUser = currentUser;
26-
_outboxEventRepository = outboxEventRepository;
25+
_outboxMessageRepository = outboxMessageRepository;
2726
}
2827

2928
public async Task HandleAsync(EntityCreatedEvent<Product> domainEvent, CancellationToken cancellationToken = default)
@@ -37,16 +36,15 @@ await _auditSerivce.AddOrUpdateAsync(new AuditLogEntry
3736
Log = domainEvent.Entity.AsJsonString(),
3837
}, cancellationToken);
3938

40-
await _outboxEventRepository.AddOrUpdateAsync(new OutboxEvent
39+
await _outboxMessageRepository.AddOrUpdateAsync(new OutboxMessage
4140
{
4241
EventType = EventTypeConstants.ProductCreated,
4342
TriggeredById = _currentUser.UserId,
4443
CreatedDateTime = domainEvent.EventDateTime,
4544
ObjectId = domainEvent.Entity.Id.ToString(),
4645
Payload = domainEvent.Entity.AsJsonString(),
47-
ActivityId = Activity.Current.Id,
4846
}, cancellationToken);
4947

50-
await _outboxEventRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
48+
await _outboxMessageRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
5149
}
5250
}

src/Monolith/ClassifiedAds.Application/Products/EventHandlers/ProductDeletedEventHandler.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using ClassifiedAds.Domain.Identity;
66
using ClassifiedAds.Domain.Repositories;
77
using System;
8-
using System.Diagnostics;
98
using System.Threading;
109
using System.Threading.Tasks;
1110

@@ -15,15 +14,15 @@ public class ProductDeletedEventHandler : IDomainEventHandler<EntityDeletedEvent
1514
{
1615
private readonly ICrudService<AuditLogEntry> _auditSerivce;
1716
private readonly ICurrentUser _currentUser;
18-
private readonly IRepository<OutboxEvent, Guid> _outboxEventRepository;
17+
private readonly IRepository<OutboxMessage, Guid> _outboxMessageRepository;
1918

2019
public ProductDeletedEventHandler(ICrudService<AuditLogEntry> auditSerivce,
2120
ICurrentUser currentUser,
22-
IRepository<OutboxEvent, Guid> outboxEventRepository)
21+
IRepository<OutboxMessage, Guid> outboxMessageRepository)
2322
{
2423
_auditSerivce = auditSerivce;
2524
_currentUser = currentUser;
26-
_outboxEventRepository = outboxEventRepository;
25+
_outboxMessageRepository = outboxMessageRepository;
2726
}
2827

2928
public async Task HandleAsync(EntityDeletedEvent<Product> domainEvent, CancellationToken cancellationToken = default)
@@ -37,16 +36,15 @@ await _auditSerivce.AddOrUpdateAsync(new AuditLogEntry
3736
Log = domainEvent.Entity.AsJsonString(),
3837
}, cancellationToken);
3938

40-
await _outboxEventRepository.AddOrUpdateAsync(new OutboxEvent
39+
await _outboxMessageRepository.AddOrUpdateAsync(new OutboxMessage
4140
{
4241
EventType = EventTypeConstants.ProductDeleted,
4342
TriggeredById = _currentUser.UserId,
4443
CreatedDateTime = domainEvent.EventDateTime,
4544
ObjectId = domainEvent.Entity.Id.ToString(),
4645
Payload = domainEvent.Entity.AsJsonString(),
47-
ActivityId = Activity.Current.Id,
4846
}, cancellationToken);
4947

50-
await _outboxEventRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
48+
await _outboxMessageRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
5149
}
5250
}

src/Monolith/ClassifiedAds.Application/Products/EventHandlers/ProductUpdatedEventHandler.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using ClassifiedAds.Domain.Identity;
66
using ClassifiedAds.Domain.Repositories;
77
using System;
8-
using System.Diagnostics;
98
using System.Threading;
109
using System.Threading.Tasks;
1110

@@ -15,15 +14,15 @@ public class ProductUpdatedEventHandler : IDomainEventHandler<EntityUpdatedEvent
1514
{
1615
private readonly ICrudService<AuditLogEntry> _auditSerivce;
1716
private readonly ICurrentUser _currentUser;
18-
private readonly IRepository<OutboxEvent, Guid> _outboxEventRepository;
17+
private readonly IRepository<OutboxMessage, Guid> _outboxMessageRepository;
1918

2019
public ProductUpdatedEventHandler(ICrudService<AuditLogEntry> auditSerivce,
2120
ICurrentUser currentUser,
22-
IRepository<OutboxEvent, Guid> outboxEventRepository)
21+
IRepository<OutboxMessage, Guid> outboxMessageRepository)
2322
{
2423
_auditSerivce = auditSerivce;
2524
_currentUser = currentUser;
26-
_outboxEventRepository = outboxEventRepository;
25+
_outboxMessageRepository = outboxMessageRepository;
2726
}
2827

2928
public async Task HandleAsync(EntityUpdatedEvent<Product> domainEvent, CancellationToken cancellationToken = default)
@@ -37,16 +36,15 @@ await _auditSerivce.AddOrUpdateAsync(new AuditLogEntry
3736
Log = domainEvent.Entity.AsJsonString(),
3837
}, cancellationToken);
3938

40-
await _outboxEventRepository.AddOrUpdateAsync(new OutboxEvent
39+
await _outboxMessageRepository.AddOrUpdateAsync(new OutboxMessage
4140
{
4241
EventType = EventTypeConstants.ProductUpdated,
4342
TriggeredById = _currentUser.UserId,
4443
CreatedDateTime = domainEvent.EventDateTime,
4544
ObjectId = domainEvent.Entity.Id.ToString(),
4645
Payload = domainEvent.Entity.AsJsonString(),
47-
ActivityId = Activity.Current.Id
4846
}, cancellationToken);
4947

50-
await _outboxEventRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
48+
await _outboxMessageRepository.UnitOfWork.SaveChangesAsync(cancellationToken);
5149
}
5250
}

src/Monolith/ClassifiedAds.Background/OutBoxEventPublishers/FileEntryOutBoxEventPublisher.cs renamed to src/Monolith/ClassifiedAds.Background/OutBoxEventPublishers/FileEntryOutboxMessagePublisher.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
using System.Threading;
88
using System.Threading.Tasks;
99

10-
namespace ClassifiedAds.Background.OutBoxEventPublishers;
10+
namespace ClassifiedAds.Background.OutboxMessagePublishers;
1111

12-
public class FileEntryOutBoxEventPublisher : IOutBoxEventPublisher
12+
public class FileEntryOutboxMessagePublisher : IOutboxMessagePublisher
1313
{
1414
private readonly IMessageBus _messageBus;
1515

@@ -23,12 +23,12 @@ public static string CanHandleEventSource()
2323
return typeof(PublishEventsCommand).Assembly.GetName().Name;
2424
}
2525

26-
public FileEntryOutBoxEventPublisher(IMessageBus messageBus)
26+
public FileEntryOutboxMessagePublisher(IMessageBus messageBus)
2727
{
2828
_messageBus = messageBus;
2929
}
3030

31-
public async Task HandleAsync(PublishingOutBoxEvent outbox, CancellationToken cancellationToken = default)
31+
public async Task HandleAsync(PublishingOutboxMessage outbox, CancellationToken cancellationToken = default)
3232
{
3333
if (outbox.EventType == EventTypeConstants.FileEntryCreated)
3434
{

src/Monolith/ClassifiedAds.Background/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
services.AddMessageBusReceiver<WebhookConsumer, FileUploadedEvent>(appSettings.Messaging);
6262
services.AddMessageBusReceiver<WebhookConsumer, FileDeletedEvent>(appSettings.Messaging);
6363
services.AddMessageBusConsumers(Assembly.GetExecutingAssembly());
64-
services.AddOutboxEventPublishers(Assembly.GetExecutingAssembly());
64+
services.AddOutboxMessagePublishers(Assembly.GetExecutingAssembly());
6565

6666
services.AddNotificationServices(appSettings.Notification);
6767

src/Monolith/ClassifiedAds.Domain/Entities/OutboxEvent.cs renamed to src/Monolith/ClassifiedAds.Domain/Entities/OutboxMessage.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
namespace ClassifiedAds.Domain.Entities;
44

5-
public class OutboxEvent : OutboxEventBase, IAggregateRoot
5+
public class OutboxMessage : OutboxMessageBase, IAggregateRoot
66
{
77
}
88

9-
public class ArchivedOutboxEvent : OutboxEventBase, IAggregateRoot
9+
public class ArchivedOutboxMessage : OutboxMessageBase, IAggregateRoot
1010
{
1111
}
1212

13-
public abstract class OutboxEventBase : Entity<Guid>
13+
public abstract class OutboxMessageBase : Entity<Guid>
1414
{
1515
public string EventType { get; set; }
1616

0 commit comments

Comments
 (0)