Skip to content

Commit 8d04659

Browse files
authored
Merge pull request #15 from ardalis/ardalis/mediatorsourcegen
Update packages and migrate to Mediator Sourcegenerator
2 parents a43096a + e50028f commit 8d04659

19 files changed

Lines changed: 92 additions & 132 deletions

Directory.Packages.props

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
<Project>
22
<ItemGroup>
33
<PackageVersion Include="Ardalis.GuardClauses" Version="5.0.0" />
4-
<PackageVersion Include="Ardalis.Specification" Version="9.2.0" />
5-
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
6-
<PackageVersion Include="FluentAssertions" Version="8.4.0" />
7-
<PackageVersion Include="MediatR" Version="12.5.0" />
8-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.6" />
9-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
4+
<PackageVersion Include="Ardalis.Specification" Version="9.3.1" />
5+
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
6+
<PackageVersion Include="AwesomeAssertions" Version="9.2.0" />
7+
<PackageVersion Include="Mediator.Abstractions" Version="3.0.1" />
8+
<PackageVersion Include="Mediator.SourceGenerator" Version="3.0.1" />
9+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.10" />
10+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
1011
<PackageVersion Include="Moq" Version="4.20.72" />
11-
<PackageVersion Include="xunit" Version="2.9.3" />
12-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.1" />
12+
<PackageVersion Include="Shouldly" Version="4.3.0" />
13+
<PackageVersion Include="xunit" Version="2.9.2" />
14+
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2" />
1315
</ItemGroup>
1416
</Project>

src/Ardalis.SharedKernel/Ardalis.SharedKernel.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
<RepositoryUrl>https://github.com/ardalis/Ardalis.SharedKernel</RepositoryUrl>
1414
<PackageTags>DDD;Shared Kernel;SharedKernel;Domain-Driven Design;Repository;Specification;ValueObject;Value Object;Ardalis;Clean;Clean Architecture;Clean Architecture Template</PackageTags>
1515
<PackageIcon>icon.png</PackageIcon>
16-
<Version>3.0.1</Version>
16+
<Version>4.0.0</Version>
1717
<PackageReleaseNotes>
18-
* Net9
18+
* Swapped out MediatR for Mediator Souregenerator and Mediator.Abstractions
19+
* Updated dependencies to latest versions
1920
</PackageReleaseNotes>
2021
<PublishRepositoryUrl>true</PublishRepositoryUrl>
2122
<EmbedUntrackedSources>true</EmbedUntrackedSources>
@@ -26,7 +27,7 @@
2627
<ItemGroup>
2728
<PackageReference Include="Ardalis.GuardClauses" />
2829
<PackageReference Include="Ardalis.Specification" />
29-
<PackageReference Include="MediatR" />
30+
<PackageReference Include="Mediator.Abstractions" />
3031
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
3132
</ItemGroup>
3233

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
using MediatR;
1+
using Mediator;
22

33
namespace Ardalis.SharedKernel;
44

55
/// <summary>
6-
/// A base type for domain events. Depends on MediatR INotification.
6+
/// A base type for domain events. Depends on Mediator INotification.
77
/// Includes DateOccurred which is set on creation.
88
/// </summary>
99
public abstract class DomainEventBase : INotification
1010
{
1111
public DateTime DateOccurred { get; protected set; } = DateTime.UtcNow;
1212
}
13-

src/Ardalis.SharedKernel/ICommand.cs

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/Ardalis.SharedKernel/ICommandHandler.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/Ardalis.SharedKernel/IQuery.cs

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/Ardalis.SharedKernel/IQueryHandler.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,33 @@
11
using System.Diagnostics;
22
using System.Reflection;
33
using Ardalis.GuardClauses;
4-
using MediatR;
4+
using Mediator;
55
using Microsoft.Extensions.Logging;
66

77
namespace Ardalis.SharedKernel;
88

99
/// <summary>
10-
/// Adds logging for all requests in MediatR pipeline.
10+
/// Adds logging for all requests in Mediator pipeline.
1111
/// Configure by adding the service with a scoped lifetime
12-
///
13-
/// Example for Autofac:
14-
/// builder
15-
/// .RegisterType&lt;Mediator&gt;()
16-
/// .As&lt;IMediator&gt;()
17-
/// .InstancePerLifetimeScope();
18-
///
19-
/// builder
20-
/// .RegisterGeneric(typeof(LoggingBehavior&lt;,&gt;))
21-
/// .As(typeof(IPipelineBehavior&lt;,&gt;))
22-
/// .InstancePerLifetimeScope();
23-
///
2412
/// </summary>
2513
/// <typeparam name="TRequest"></typeparam>
2614
/// <typeparam name="TResponse"></typeparam>
27-
public class LoggingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
28-
where TRequest : IRequest<TResponse>
15+
public class LoggingBehavior<TRequest, TResponse>(ILogger<LoggingBehavior<TRequest, TResponse>> logger)
16+
: IPipelineBehavior<TRequest, TResponse>
17+
where TRequest : IRequest<TResponse>
2918
{
30-
private readonly ILogger<Mediator> _logger;
19+
private readonly ILogger<LoggingBehavior<TRequest, TResponse>> _logger = logger;
3120

32-
public LoggingBehavior(ILogger<Mediator> logger)
33-
{
34-
_logger = logger;
35-
}
36-
37-
public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next, CancellationToken cancellationToken)
21+
public async ValueTask<TResponse> Handle(
22+
TRequest request,
23+
MessageHandlerDelegate<TRequest, TResponse> next,
24+
CancellationToken cancellationToken)
3825
{
3926
Guard.Against.Null(request);
4027
if (_logger.IsEnabled(LogLevel.Information))
4128
{
4229
_logger.LogInformation("Handling {RequestName}", typeof(TRequest).Name);
4330

44-
// Reflection! Could be a performance concern
4531
Type myType = request.GetType();
4632
IList<PropertyInfo> props = new List<PropertyInfo>(myType.GetProperties());
4733
foreach (PropertyInfo prop in props)
@@ -53,11 +39,10 @@ public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TRe
5339

5440
var sw = Stopwatch.StartNew();
5541

56-
var response = await next();
42+
var response = await next(request, cancellationToken);
5743

5844
_logger.LogInformation("Handled {RequestName} with {Response} in {ms} ms", typeof(TRequest).Name, response, sw.ElapsedMilliseconds);
5945
sw.Stop();
6046
return response;
6147
}
6248
}
63-

src/Ardalis.SharedKernel/MediatRDomainEventDispatcher.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
using MediatR;
1+
using Mediator;
22
using Microsoft.Extensions.Logging;
33

44
namespace Ardalis.SharedKernel;
55

6-
public class MediatRDomainEventDispatcher : IDomainEventDispatcher
6+
public class MediatorDomainEventDispatcher : IDomainEventDispatcher
77
{
88
private readonly IMediator _mediator;
9-
private readonly ILogger<MediatRDomainEventDispatcher> _logger;
9+
private readonly ILogger<MediatorDomainEventDispatcher> _logger;
1010

11-
public MediatRDomainEventDispatcher(IMediator mediator, ILogger<MediatRDomainEventDispatcher> logger)
11+
public MediatorDomainEventDispatcher(IMediator mediator, ILogger<MediatorDomainEventDispatcher> logger)
1212
{
1313
_mediator = mediator;
1414
_logger = logger;

tests/Ardalis.SharedKernel.UnitTests/Ardalis.SharedKernel.UnitTests.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="FluentAssertions" />
9+
<PackageReference Include="AwesomeAssertions" />
10+
<PackageReference Include="Mediator.SourceGenerator" PrivateAssets="all" />
1011
<PackageReference Include="Microsoft.NET.Test.Sdk" />
1112
<PackageReference Include="Moq" />
13+
<PackageReference Include="Shouldly" />
1214
<PackageReference Include="xunit" />
1315
<PackageReference Include="xunit.runner.visualstudio">
1416
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

0 commit comments

Comments
 (0)