Skip to content

Commit 80ff0e9

Browse files
author
Ken
committed
Add OutboxRecord ClassMap
1 parent 8d3bea1 commit 80ff0e9

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
using Microsoft.Extensions.DependencyInjection;
22
using MinimalDomainEvents.Outbox.Abstractions;
3+
using MongoDB.Bson.Serialization;
34
using MongoDB.Driver;
45

56
namespace MinimalDomainEvents.Outbox.MongoDb;
67
public static class IOutboxDispatcherBuilderExtensions
78
{
89
public static IOutboxDispatcherBuilder AddMongo(this IOutboxDispatcherBuilder builder, MongoClient mongoClient)
910
{
11+
TryRegisterOutboxRecordClassMap();
1012
builder.Services.AddScoped<IPersistOutboxRecords>(sp => ActivatorUtilities.CreateInstance<MongoDbDomainEventPersister>(sp, builder.OutboxSettings, mongoClient));
1113
return builder;
1214
}
1315

1416
public static IOutboxDispatcherBuilder AddMongo(this IOutboxDispatcherBuilder builder, Func<IServiceProvider, MongoClient> mongoClientFactory)
1517
{
18+
TryRegisterOutboxRecordClassMap();
1619
builder.Services.AddScoped<IPersistOutboxRecords>(sp => ActivatorUtilities.CreateInstance<MongoDbDomainEventPersister>(sp, builder.OutboxSettings, mongoClientFactory(sp)));
1720
return builder;
1821
}
22+
23+
private static bool TryRegisterOutboxRecordClassMap()
24+
{
25+
return BsonClassMap.TryRegisterClassMap<OutboxRecord>(cm =>
26+
{
27+
cm.AutoMap();
28+
cm.SetIgnoreExtraElements(true);
29+
});
30+
}
1931
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
namespace MinimalDomainEvents.Outbox.MongoDb.UnitTests;
99

1010
[Collection("MongoDb Integration")]
11-
public class IOutboxDispatcherBuilderExtensionsTests(MongoContainerFixture fixture)
11+
public class OutboxBuilderExtensionsTests(MongoContainerFixture fixture)
1212
{
1313
[Fact]
14-
public async Task WithDatabase_AfterUseMongo_StillWorks()
14+
public async Task WithDatabase_After_UseMongo_Works()
1515
{
1616
var mongoClient = new MongoClient(fixture.ConnectionString);
1717
IServiceCollection serviceCollection = new ServiceCollection();

0 commit comments

Comments
 (0)