diff --git a/Directory.Packages.props b/Directory.Packages.props index 39018dec4..7fcbece69 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,4 +1,4 @@ - + true true @@ -35,7 +35,8 @@ - + + diff --git a/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj b/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj index 7d0eeeeb2..58f6a066e 100644 --- a/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj +++ b/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/DevBetterWeb.Core/Events/AppStartedEvent.cs b/src/DevBetterWeb.Core/Events/AppStartedEvent.cs index a99909094..cc987ec36 100644 --- a/src/DevBetterWeb.Core/Events/AppStartedEvent.cs +++ b/src/DevBetterWeb.Core/Events/AppStartedEvent.cs @@ -1,6 +1,6 @@ using System; using DevBetterWeb.Core.SharedKernel; -using MediatR; +using Mediator; namespace DevBetterWeb.Core.Events; diff --git a/src/DevBetterWeb.Core/Interfaces/IHandle.cs b/src/DevBetterWeb.Core/Interfaces/IHandle.cs index acd34c27b..35f532a74 100644 --- a/src/DevBetterWeb.Core/Interfaces/IHandle.cs +++ b/src/DevBetterWeb.Core/Interfaces/IHandle.cs @@ -2,7 +2,7 @@ using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.SharedKernel; -using MediatR; +using Mediator; namespace DevBetterWeb.Core.Interfaces; diff --git a/src/DevBetterWeb.Core/SharedKernel/BaseDomainEvent.cs b/src/DevBetterWeb.Core/SharedKernel/BaseDomainEvent.cs index 7b6f79e5e..a7901fb28 100644 --- a/src/DevBetterWeb.Core/SharedKernel/BaseDomainEvent.cs +++ b/src/DevBetterWeb.Core/SharedKernel/BaseDomainEvent.cs @@ -1,5 +1,5 @@ using System; -using MediatR; +using Mediator; namespace DevBetterWeb.Core.SharedKernel; diff --git a/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj b/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj index 9f102ec97..6aa3cfc5e 100644 --- a/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj +++ b/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj @@ -18,7 +18,7 @@ - + diff --git a/src/DevBetterWeb.Infrastructure/DomainEvents/DomainEventHandler.cs b/src/DevBetterWeb.Infrastructure/DomainEvents/DomainEventHandler.cs index cc259fd09..2daac5624 100644 --- a/src/DevBetterWeb.Infrastructure/DomainEvents/DomainEventHandler.cs +++ b/src/DevBetterWeb.Infrastructure/DomainEvents/DomainEventHandler.cs @@ -3,7 +3,7 @@ using System.Threading.Tasks; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Core.SharedKernel; -using MediatR; +using Mediator; namespace DevBetterWeb.Infrastructure.DomainEvents; @@ -17,7 +17,7 @@ public DomainEventHandler(IEnumerable> handlers) _handlers = handlers; } - public async Task Handle(TDomainEvent notification, CancellationToken cancellationToken) + public async ValueTask Handle(TDomainEvent notification, CancellationToken cancellationToken) { foreach (var handler in _handlers) { diff --git a/src/DevBetterWeb.Infrastructure/DomainEvents/MediatRDomainEventDispatcher.cs b/src/DevBetterWeb.Infrastructure/DomainEvents/MediatorDomainEventDispatcher.cs similarity index 79% rename from src/DevBetterWeb.Infrastructure/DomainEvents/MediatRDomainEventDispatcher.cs rename to src/DevBetterWeb.Infrastructure/DomainEvents/MediatorDomainEventDispatcher.cs index 7a25d1133..d65100319 100644 --- a/src/DevBetterWeb.Infrastructure/DomainEvents/MediatRDomainEventDispatcher.cs +++ b/src/DevBetterWeb.Infrastructure/DomainEvents/MediatorDomainEventDispatcher.cs @@ -3,17 +3,17 @@ using System.Threading.Tasks; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Core.SharedKernel; -using MediatR; +using Mediator; using Microsoft.Extensions.Logging; namespace DevBetterWeb.Infrastructure.DomainEvents; -public class MediatRDomainEventDispatcher : IDomainEventDispatcher +public class MediatorDomainEventDispatcher : IDomainEventDispatcher { private readonly IMediator _mediator; - private readonly ILogger _logger; + private readonly ILogger _logger; - public MediatRDomainEventDispatcher(IMediator mediator, ILogger logger) + public MediatorDomainEventDispatcher(IMediator mediator, ILogger logger) { _mediator = mediator; _logger = logger; diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs index 07d1011e9..8319fccaa 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs @@ -3,7 +3,7 @@ using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; -using MediatR; +using Mediator; namespace DevBetterWeb.Core.Handlers; diff --git a/src/DevBetterWeb.Infrastructure/InfrastructureServiceCollectionExtensions.cs b/src/DevBetterWeb.Infrastructure/InfrastructureServiceCollectionExtensions.cs index 16aed7773..347f57b99 100644 --- a/src/DevBetterWeb.Infrastructure/InfrastructureServiceCollectionExtensions.cs +++ b/src/DevBetterWeb.Infrastructure/InfrastructureServiceCollectionExtensions.cs @@ -31,7 +31,7 @@ public static IServiceCollection AddInfrastructureServices(this IServiceCollecti } // Common Dependencies - services.AddScoped(); + services.AddScoped(); // services.AddScoped(sp => sp.GetRequiredService()); services.AddScoped(); diff --git a/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserEmailConfirmationService.cs b/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserEmailConfirmationService.cs index 9f70054a4..a3c8019c7 100644 --- a/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserEmailConfirmationService.cs +++ b/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserEmailConfirmationService.cs @@ -3,7 +3,7 @@ using DevBetterWeb.Core.Exceptions; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.Identity.Data; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; diff --git a/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserRoleMembershipService.cs b/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserRoleMembershipService.cs index c84ddf615..e5404e8fc 100644 --- a/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserRoleMembershipService.cs +++ b/src/DevBetterWeb.Infrastructure/Services/AspNetCoreIdentityUserRoleMembershipService.cs @@ -3,7 +3,7 @@ using DevBetterWeb.Core.Exceptions; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.Identity.Data; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; diff --git a/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs b/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs index 71c430989..c78b688c2 100644 --- a/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs +++ b/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs @@ -6,7 +6,7 @@ using DevBetterWeb.Core.Events; using DevBetterWeb.Infrastructure.DomainEvents; using DevBetterWeb.Infrastructure.Identity.Data; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.UI.Services; diff --git a/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/NewMemberRegister.cshtml.cs b/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/NewMemberRegister.cshtml.cs index 0804e6845..570e8882a 100644 --- a/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/NewMemberRegister.cshtml.cs +++ b/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/NewMemberRegister.cshtml.cs @@ -8,7 +8,7 @@ using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.Identity.Data; using GoogleReCaptcha.V3.Interface; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; diff --git a/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/Register.cshtml.cs b/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/Register.cshtml.cs index f6568d85c..c92bf0418 100644 --- a/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/Register.cshtml.cs +++ b/src/DevBetterWeb.Web/Areas/Identity/Pages/Account/Register.cshtml.cs @@ -6,7 +6,7 @@ using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.Identity.Data; using GoogleReCaptcha.V3.Interface; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; diff --git a/src/DevBetterWeb.Web/Controllers/HomeController.cs b/src/DevBetterWeb.Web/Controllers/HomeController.cs index 8467693cf..3aeb7ef13 100644 --- a/src/DevBetterWeb.Web/Controllers/HomeController.cs +++ b/src/DevBetterWeb.Web/Controllers/HomeController.cs @@ -1,5 +1,5 @@ using DevBetterWeb.Core.Events; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Diagnostics; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; diff --git a/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj b/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj index 9a0b6c456..02749266a 100644 --- a/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj +++ b/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj @@ -21,7 +21,11 @@ - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/src/DevBetterWeb.Web/Pages/User/MyProfile/EditAvatar.cshtml.cs b/src/DevBetterWeb.Web/Pages/User/MyProfile/EditAvatar.cshtml.cs index 519e451c8..6d9516194 100644 --- a/src/DevBetterWeb.Web/Pages/User/MyProfile/EditAvatar.cshtml.cs +++ b/src/DevBetterWeb.Web/Pages/User/MyProfile/EditAvatar.cshtml.cs @@ -9,7 +9,7 @@ using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Core.Specs; using DevBetterWeb.Infrastructure.Identity.Data; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Identity; diff --git a/src/DevBetterWeb.Web/Program.cs b/src/DevBetterWeb.Web/Program.cs index 0e8dc199e..cc36ac486 100644 --- a/src/DevBetterWeb.Web/Program.cs +++ b/src/DevBetterWeb.Web/Program.cs @@ -91,11 +91,15 @@ builder.Services.AddInfrastructureServices(isDevelopment, vimeoToken); -builder.Services.AddMediatR(cfg => - cfg.RegisterServicesFromAssemblies( - typeof(IAggregateRoot).Assembly, - typeof(AppDbContext).Assembly, - typeof(Program).Assembly)); +builder.Services.AddMediator(options => +{ + options.Assemblies = + [ + typeof(IAggregateRoot), + typeof(AppDbContext), + typeof(Program) + ]; +}); builder.Services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>)); diff --git a/src/DevBetterWeb.Web/Services/DailyCheckService.cs b/src/DevBetterWeb.Web/Services/DailyCheckService.cs index 02255333c..e86faf8b1 100644 --- a/src/DevBetterWeb.Web/Services/DailyCheckService.cs +++ b/src/DevBetterWeb.Web/Services/DailyCheckService.cs @@ -5,7 +5,7 @@ using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Core.Specs; -using MediatR; +using Mediator; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; diff --git a/src/DevBetterWeb.Web/Services/StartupNotificationService.cs b/src/DevBetterWeb.Web/Services/StartupNotificationService.cs index ba4572f62..ae61f23a5 100644 --- a/src/DevBetterWeb.Web/Services/StartupNotificationService.cs +++ b/src/DevBetterWeb.Web/Services/StartupNotificationService.cs @@ -3,7 +3,7 @@ using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; -using MediatR; +using Mediator; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; diff --git a/tests/DevBetterWeb.FunctionalTests/CustomWebApplicationFactory.cs b/tests/DevBetterWeb.FunctionalTests/CustomWebApplicationFactory.cs index 5ff01e736..affa95645 100644 --- a/tests/DevBetterWeb.FunctionalTests/CustomWebApplicationFactory.cs +++ b/tests/DevBetterWeb.FunctionalTests/CustomWebApplicationFactory.cs @@ -6,7 +6,7 @@ using DevBetterWeb.Web; using DevBetterWeb.Web.Areas.Identity; using DevBetterWeb.Web.Models; -using MediatR; +using Mediator; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc.Testing; diff --git a/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj b/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj index 3f7218fd3..93d93e188 100644 --- a/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj +++ b/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj @@ -6,7 +6,7 @@ - + diff --git a/tests/DevBetterWeb.FunctionalTests/NoOpMediator.cs b/tests/DevBetterWeb.FunctionalTests/NoOpMediator.cs index 4d443090f..a4a9d28dd 100644 --- a/tests/DevBetterWeb.FunctionalTests/NoOpMediator.cs +++ b/tests/DevBetterWeb.FunctionalTests/NoOpMediator.cs @@ -1,7 +1,8 @@ -using System.Collections.Generic; +#nullable enable +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; -using MediatR; +using Mediator; namespace DevBetterWeb.FunctionalTests; @@ -12,33 +13,48 @@ public IAsyncEnumerable CreateStream(IStreamRequest CreateStream(object request, CancellationToken cancellationToken = default) + public IAsyncEnumerable CreateStream(IStreamQuery query, CancellationToken cancellationToken = default) { throw new System.NotImplementedException(); } - public Task Publish(object notification, CancellationToken cancellationToken = default) + public IAsyncEnumerable CreateStream(IStreamCommand command, CancellationToken cancellationToken = default) { - return Task.CompletedTask; + throw new System.NotImplementedException(); + } + + public IAsyncEnumerable CreateStream(object request, CancellationToken cancellationToken = default) + { + throw new System.NotImplementedException(); + } + + public ValueTask Publish(object notification, CancellationToken cancellationToken = default) + { + return ValueTask.CompletedTask; + } + + public ValueTask Publish(TNotification notification, CancellationToken cancellationToken = default) where TNotification : INotification + { + return ValueTask.CompletedTask; } - public Task Publish(TNotification notification, CancellationToken cancellationToken = default) where TNotification : INotification + public ValueTask Send(IRequest request, CancellationToken cancellationToken = default) { - return Task.CompletedTask; + return ValueTask.FromResult(default!); } - public Task Send(IRequest request, CancellationToken cancellationToken = default) + public ValueTask Send(ICommand command, CancellationToken cancellationToken = default) { - return Task.FromResult(default); + return ValueTask.FromResult(default!); } - public Task Send(TRequest request, CancellationToken cancellationToken = default) where TRequest : IRequest + public ValueTask Send(IQuery query, CancellationToken cancellationToken = default) { - return Task.CompletedTask; + return ValueTask.FromResult(default!); } - public Task Send(object request, CancellationToken cancellationToken = default) + public ValueTask Send(object request, CancellationToken cancellationToken = default) { - return Task.FromResult(default); + return ValueTask.FromResult(default); } } diff --git a/tests/DevBetterWeb.UnitTests/Web/Services/LeaderboardServiceTests/SetBookCategoriesAsync.cs b/tests/DevBetterWeb.UnitTests/Web/Services/LeaderboardServiceTests/SetBookCategoriesAsync.cs index d509d8022..abbbe8fca 100644 --- a/tests/DevBetterWeb.UnitTests/Web/Services/LeaderboardServiceTests/SetBookCategoriesAsync.cs +++ b/tests/DevBetterWeb.UnitTests/Web/Services/LeaderboardServiceTests/SetBookCategoriesAsync.cs @@ -141,7 +141,7 @@ public async Task OrdersMemberRanksCorrectlyGivenUnorderedRanks() _rankAndOrderServiceMock.When(x => x.OrderByRankForMembersAndBooks(Arg.Any>())) .Do(callInfo => { - foreach (var category in callInfo.Arg>()) + foreach (var category in callInfo.Arg>()!) { category.Members = category.Members.OrderBy(m => m.BooksRank).ToList(); } @@ -178,7 +178,7 @@ public async Task OrdersMembersCorrectlyByBooksReadCountGivenUnorderedMembers() _rankAndOrderServiceMock.When(x => x.OrderByRankForMembersAndBooks(Arg.Any>())) .Do(callInfo => { - foreach (var category in callInfo.Arg>()) + foreach (var category in callInfo.Arg>()!) { category.Members = category.Members.OrderByDescending(m => m.BooksReadCount).ThenBy(m => m.BooksRank).ToList(); } diff --git a/tests/DevBetterWeb.UnitTests/Web/Services/RankAndOrderServiceTests/UpdateBooksRank.cs b/tests/DevBetterWeb.UnitTests/Web/Services/RankAndOrderServiceTests/UpdateBooksRank.cs index 1823d7ca3..e6bcefbcf 100644 --- a/tests/DevBetterWeb.UnitTests/Web/Services/RankAndOrderServiceTests/UpdateBooksRank.cs +++ b/tests/DevBetterWeb.UnitTests/Web/Services/RankAndOrderServiceTests/UpdateBooksRank.cs @@ -127,7 +127,7 @@ public void UpdateBooksRankGivenCategoriesWithMultipleBooks() _mockRankingService.When(rs => rs.CalculateBookRank(Arg.Any>())) .Do(callInfo => { - foreach (var book in callInfo.Arg>()) + foreach (var book in callInfo.Arg>()!) { book.Rank = book.Id!.Value; }