Skip to content

Commit

Permalink
feat: domain event improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
CarlosPavajeau committed Oct 5, 2021
1 parent 216422a commit 48234ff
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ public static WarMaterialDeliveryCertificateFormat Create(string code, DateTime
WarMaterialDeliveryCertificateFormatExplosive.Create(format, explosiveSerial, quantity));
}

format.Record(new WarMaterialDeliveryCertificateFormatCreatedDomainEvent
format.Record(new WarMaterialDeliveryCertificateFormatCreatedDomainEvent(format.Code)
{
Weapons = weapons,
Ammunition = ammunition,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ namespace Armory.Shared.Domain.Formats.WarMaterialDeliveryCertificateFormats
{
public class WarMaterialDeliveryCertificateFormatCreatedDomainEvent : DomainEvent
{
public WarMaterialDeliveryCertificateFormatCreatedDomainEvent(string aggregateId) : base(aggregateId)
{
}

public IEnumerable<string> Weapons { get; init; }
public IDictionary<string, int> Ammunition { get; init; }
public IDictionary<string, int> Equipments { get; init; }
Expand Down
11 changes: 8 additions & 3 deletions src/Shared/Domain/Bus/Event/DomainEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,18 @@ protected DomainEvent(string aggregateId, string eventId, string occurredOn)
OccurredOn = occurredOn;
}

protected DomainEvent(string aggregateId) : this(aggregateId, Guid.NewGuid().ToString(),
DateTime.Now.ToString("g"))
{
}

protected DomainEvent() : this(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now.ToString("d"))
{
}

public string AggregateId { get; set; }
public string EventId { get; set; }
public string OccurredOn { get; set; }
public string AggregateId { get; }
public string EventId { get; }
public string OccurredOn { get; }

public abstract string EventName();
}
Expand Down
6 changes: 5 additions & 1 deletion src/Shared/Infrastructure/Bus/Event/InMemoryEventBus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,26 @@
using System.Threading.Tasks;
using Armory.Shared.Domain.Bus.Event;
using MediatR;
using Microsoft.Extensions.Logging;

namespace Armory.Shared.Infrastructure.Bus.Event
{
public class InMemoryEventBus : IEventBus
{
private readonly ILogger _logger;
private readonly IMediator _mediator;

public InMemoryEventBus(IMediator mediator)
public InMemoryEventBus(IMediator mediator, ILogger logger)
{
_mediator = mediator;
_logger = logger;
}

public async Task Publish(List<DomainEvent> events)
{
foreach (var @event in events)
{
_logger.LogInformation("Publish domain event {EventName}, {@EventInfo}", @event.EventName(), @event);
await _mediator.Publish(@event);
}
}
Expand Down

0 comments on commit 48234ff

Please sign in to comment.