diff --git a/src/DevBetterWeb.Core/Entities/ArchiveVideo.cs b/src/DevBetterWeb.Core/Entities/ArchiveVideo.cs index d58d4ea9d..48e1ed0c9 100644 --- a/src/DevBetterWeb.Core/Entities/ArchiveVideo.cs +++ b/src/DevBetterWeb.Core/Entities/ArchiveVideo.cs @@ -47,8 +47,9 @@ public void CreateMdComments(IMarkdownService markdownService) } } - internal void AddDomainEvent(VideoAddedEvent videoAddedEvent) + internal void NewVideoAdded() { + var videoAddedEvent = new VideoAddedEvent(this); RegisterDomainEvent(videoAddedEvent); } } diff --git a/src/DevBetterWeb.Core/Entities/Member.cs b/src/DevBetterWeb.Core/Entities/Member.cs index 81a0e6885..2dceefd86 100644 --- a/src/DevBetterWeb.Core/Entities/Member.cs +++ b/src/DevBetterWeb.Core/Entities/Member.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Threading; using System.Threading.Tasks; using Ardalis.GuardClauses; using DevBetterWeb.Core.Enums; @@ -425,7 +426,7 @@ public MemberAddressUpdatedHandler(IMapCoordinateService mapCoordinateService, _jsonParserService = jsonParserService; } - public async Task Handle(MemberAddressUpdatedEvent addressUpdatedEvent) + public async Task Handle(MemberAddressUpdatedEvent addressUpdatedEvent, CancellationToken cancellationToken) { var member = addressUpdatedEvent.Member; var oldAddress = addressUpdatedEvent.OldAddress; diff --git a/src/DevBetterWeb.Core/Interfaces/IHandle.cs b/src/DevBetterWeb.Core/Interfaces/IHandle.cs index f7570d843..acd34c27b 100644 --- a/src/DevBetterWeb.Core/Interfaces/IHandle.cs +++ b/src/DevBetterWeb.Core/Interfaces/IHandle.cs @@ -1,9 +1,12 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; +using DevBetterWeb.Core.Events; using DevBetterWeb.Core.SharedKernel; +using MediatR; namespace DevBetterWeb.Core.Interfaces; -public interface IHandle where T : BaseDomainEvent +public interface IHandle where T : BaseDomainEvent { - Task Handle(T domainEvent); + Task Handle(T domainEvent, CancellationToken cancellationToken); } diff --git a/src/DevBetterWeb.Core/Services/CreateVideoService.cs b/src/DevBetterWeb.Core/Services/CreateVideoService.cs index 53b79be2f..2d7208edc 100644 --- a/src/DevBetterWeb.Core/Services/CreateVideoService.cs +++ b/src/DevBetterWeb.Core/Services/CreateVideoService.cs @@ -99,8 +99,7 @@ public async Task UploadChunkAsync(bool isBaseFolder, string var existVideo = await _repositoryArchiveVideo.FirstOrDefaultAsync(spec, cancellationToken); if (existVideo == null) { - var videoAddedEvent = new VideoAddedEvent(archiveVideo); - archiveVideo.AddDomainEvent(videoAddedEvent); + archiveVideo.NewVideoAdded(); _ = await _repositoryArchiveVideo.AddAsync(archiveVideo, cancellationToken); diff --git a/src/DevBetterWeb.Infrastructure/DomainEvents/DomainEventHandler.cs b/src/DevBetterWeb.Infrastructure/DomainEvents/DomainEventHandler.cs new file mode 100644 index 000000000..cc259fd09 --- /dev/null +++ b/src/DevBetterWeb.Infrastructure/DomainEvents/DomainEventHandler.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using DevBetterWeb.Core.Interfaces; +using DevBetterWeb.Core.SharedKernel; +using MediatR; + +namespace DevBetterWeb.Infrastructure.DomainEvents; + +public class DomainEventHandler : INotificationHandler + where TDomainEvent : BaseDomainEvent +{ + private readonly IEnumerable> _handlers; + + public DomainEventHandler(IEnumerable> handlers) + { + _handlers = handlers; + } + + public async Task Handle(TDomainEvent notification, CancellationToken cancellationToken) + { + foreach (var handler in _handlers) + { + await handler.Handle(notification, cancellationToken); + } + } +} diff --git a/src/DevBetterWeb.Infrastructure/Handlers/AppStartedEventHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/AppStartedEventHandler.cs index 7d9aced66..1db55820c 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/AppStartedEventHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/AppStartedEventHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public AppStartedEventHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public async Task Handle(AppStartedEvent domainEvent) + public async Task Handle(AppStartedEvent domainEvent, CancellationToken cancellationToken) { var message = $"DevBetter.com web app started at {domainEvent.StartDateTime}."; await _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DailyCheckInitiatedEventHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DailyCheckInitiatedEventHandler.cs index 4f6d4c2f0..f9f9f999d 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DailyCheckInitiatedEventHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DailyCheckInitiatedEventHandler.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; using DevBetterWeb.Core.Entities; using DevBetterWeb.Core.Events; @@ -34,7 +35,7 @@ public DailyCheckInitiatedEventHandler(AdminUpdatesWebhook webhook, _repository = repository; } - public async Task Handle(DailyCheckInitiatedEvent domainEvent) + public async Task Handle(DailyCheckInitiatedEvent domainEvent, CancellationToken cancellationToken) { AppendOnlyStringList messages = new(); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogBillingActivityCreatedEventHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogBillingActivityCreatedEventHandler.cs index ed8d2e1fa..db6c2179c 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogBillingActivityCreatedEventHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogBillingActivityCreatedEventHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogBillingActivityCreatedEventHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(BillingActivityCreatedEvent domainEvent) + public Task Handle(BillingActivityCreatedEvent domainEvent, CancellationToken cancellationToken) { var message = $"BillingActivity with action {domainEvent.BillingActivity.Details.ActionVerbPastTense} created for member {domainEvent.BillingActivity.Details.MemberName}"; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogExceptionHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogExceptionHandler.cs index b24d1881b..8f8c75fd1 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogExceptionHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogExceptionHandler.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; @@ -15,7 +16,7 @@ public DiscordLogExceptionHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(ExceptionEvent domainEvent) + public Task Handle(ExceptionEvent domainEvent, CancellationToken cancellationToken) { var message = $"Exception {DateTime.UtcNow}: {domainEvent.Exception}"; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogForgotPasswordHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogForgotPasswordHandler.cs index e20fef9a9..7ebde3ad7 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogForgotPasswordHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogForgotPasswordHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogForgotPasswordHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(PasswordResetEvent domainEvent) + public Task Handle(PasswordResetEvent domainEvent, CancellationToken cancellationToken) { var message = $"Password reset requested by {domainEvent.EmailAddress}."; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogInvalidUserHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogInvalidUserHandler.cs index bfeae2f20..fc064d5dd 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogInvalidUserHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogInvalidUserHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogInvalidUserHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(InvalidUserEvent domainEvent) + public Task Handle(InvalidUserEvent domainEvent, CancellationToken cancellationToken) { var message = $"Password reset requested by {domainEvent.EmailAddress} but no confirmed user found with that address."; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookAddHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookAddHandler.cs index b0933ec55..40703125b 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookAddHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookAddHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -20,7 +21,7 @@ public static string returnWebhookMessageString(MemberAddedBookAddEvent domainEv "Check out the leaderboard here: https://devbetter.com/Leaderboard."; } - public Task Handle(MemberAddedBookAddEvent domainEvent) + public Task Handle(MemberAddedBookAddEvent domainEvent, CancellationToken cancellationToken) { var message = returnWebhookMessageString(domainEvent); return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookReadHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookReadHandler.cs index e89bc5ee6..a620caeb6 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookReadHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAddBookReadHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -20,7 +21,7 @@ public static string returnWebhookMessageString(MemberAddedBookReadEvent domainE $"Check out the leaderboard here: https://devbetter.com/Leaderboard."; } - public Task Handle(MemberAddedBookReadEvent domainEvent) + public Task Handle(MemberAddedBookReadEvent domainEvent, CancellationToken cancellationToken) { var message = returnWebhookMessageString(domainEvent); return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAvatarUpdateHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAvatarUpdateHandler.cs index 4912abbb7..44bcbdb70 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAvatarUpdateHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberAvatarUpdateHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogMemberAvatarUpdateHandler(DevBetterComNotificationsWebhook webh _webhook = webhook; } - public Task Handle(MemberAvatarUpdatedEvent memberAvatarUpdatedEvent) + public Task Handle(MemberAvatarUpdatedEvent memberAvatarUpdatedEvent, CancellationToken cancellationToken) { var message = returnWebhookMessageString(memberAvatarUpdatedEvent); return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHandler.cs index 270702992..f74c2ba2f 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogMemberUpdateHandler(DevBetterComNotificationsWebhook webhook) _webhook = webhook; } - public Task Handle(MemberUpdatedEvent memberUpdatedEvent) + public Task Handle(MemberUpdatedEvent memberUpdatedEvent, CancellationToken cancellationToken) { var message = returnWebhookMessageString(memberUpdatedEvent); return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHomeAddressHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHomeAddressHandler.cs index 3dae40864..568f9d1fb 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHomeAddressHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogMemberUpdateHomeAddressHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogMemberUpdateHomeAddressHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(MemberHomeAddressUpdatedEvent memberHomeAddressUpdatedEvent) + public Task Handle(MemberHomeAddressUpdatedEvent memberHomeAddressUpdatedEvent, CancellationToken cancellationToken) { var message = returnWebhookMessageString(memberHomeAddressUpdatedEvent); return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewBookAddedToGeneralListHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewBookAddedToGeneralListHandler.cs index 7a5cc4a8c..dad3cb2cc 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewBookAddedToGeneralListHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewBookAddedToGeneralListHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -20,7 +21,7 @@ public static string returnWebhookMessageString(NewBookCreatedEvent domainEvent) $"Check out the leaderboard here: https://devbetter.com/Leaderboard."; } - public Task Handle(NewBookCreatedEvent domainEvent) + public Task Handle(NewBookCreatedEvent domainEvent, CancellationToken cancellationToken) { var message = returnWebhookMessageString(domainEvent); return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewUserRegisteredHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewUserRegisteredHandler.cs index d1edb3fa3..296633787 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewUserRegisteredHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogNewUserRegisteredHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogNewUserRegisteredHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(NewUserRegisteredEvent domainEvent) + public Task Handle(NewUserRegisteredEvent domainEvent, CancellationToken cancellationToken) { var message = $"New user registered with email address: {domainEvent.EmailAddress} from IP {domainEvent.IpAddress}."; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSiteErrorOccurredHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSiteErrorOccurredHandler.cs index 018bc2944..1b27ed73b 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSiteErrorOccurredHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSiteErrorOccurredHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogSiteErrorOccurredHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(SiteErrorOccurredEvent domainEvent) + public Task Handle(SiteErrorOccurredEvent domainEvent, CancellationToken cancellationToken) { var message = $"Site error: {domainEvent.SiteException.ToString()}."; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionAddedEventHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionAddedEventHandler.cs index 7968409dc..f0f6f63e2 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionAddedEventHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionAddedEventHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogSubscriptionAddedEventHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(SubscriptionAddedEvent domainEvent) + public Task Handle(SubscriptionAddedEvent domainEvent, CancellationToken cancellationToken) { var message = $"Member {domainEvent.Member.UserFullName()} added subscription {domainEvent.MemberSubscription.Id}"; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionUpdatedEventHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionUpdatedEventHandler.cs index 860f914ef..35500d05a 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionUpdatedEventHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogSubscriptionUpdatedEventHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogSubscriptionUpdatedEventHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(SubscriptionUpdatedEvent domainEvent) + public Task Handle(SubscriptionUpdatedEvent domainEvent, CancellationToken cancellationToken) { var message = $"Member {domainEvent.Member.UserFullName()} updated subscription {domainEvent.MemberSubscription.Id}"; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserAddedToRoleHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserAddedToRoleHandler.cs index aaf9eb834..18fd276d6 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserAddedToRoleHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserAddedToRoleHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogUserAddedToRoleHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(UserAddedToRoleEvent domainEvent) + public Task Handle(UserAddedToRoleEvent domainEvent, CancellationToken cancellationToken) { var message = $"User {domainEvent.EmailAddress} added to role {domainEvent.Role}."; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserEmailConfirmedChangedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserEmailConfirmedChangedHandler.cs index 804055120..3c825e337 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserEmailConfirmedChangedHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserEmailConfirmedChangedHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogUserEmailConfirmedChangedHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(UserEmailConfirmedChangedEvent domainEvent) + public Task Handle(UserEmailConfirmedChangedEvent domainEvent, CancellationToken cancellationToken) { var message = $"For the user {domainEvent.EmailAddress} EmailConfirmed value has been changed to: {domainEvent.IsEmailConfirmed}"; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserRemovedFromRoleHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserRemovedFromRoleHandler.cs index 4c2bcbe90..3c6b16fda 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserRemovedFromRoleHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogUserRemovedFromRoleHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -14,7 +15,7 @@ public DiscordLogUserRemovedFromRoleHandler(AdminUpdatesWebhook webhook) _webhook = webhook; } - public Task Handle(UserRemovedFromRoleEvent domainEvent) + public Task Handle(UserRemovedFromRoleEvent domainEvent, CancellationToken cancellationToken) { var message = $"User {domainEvent.EmailAddress} removed from role {domainEvent.Role}."; return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs index 61667ab57..07d1011e9 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/DiscordLogVideoAddedHandler.cs @@ -1,7 +1,9 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; +using MediatR; namespace DevBetterWeb.Core.Handlers; @@ -20,7 +22,7 @@ public static string ReturnWebhookMessageString(VideoAddedEvent domainEvent) $"Check out the video here: https://devbetter.com/Videos/Details/{domainEvent.Video.VideoId}."; } - public Task Handle(VideoAddedEvent domainEvent) + public Task Handle(VideoAddedEvent domainEvent, CancellationToken cancellationToken) { var message = ReturnWebhookMessageString(domainEvent); return _webhook.SendAsync(message); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/MemberAddressUpdatedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/MemberAddressUpdatedHandler.cs index bceef2546..b89a95ba5 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/MemberAddressUpdatedHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/MemberAddressUpdatedHandler.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using DevBetterWeb.Core.Events; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.DiscordWebooks; @@ -28,7 +29,7 @@ AdminUpdatesWebhook webhook //_repository = repository; } - public async Task Handle(MemberAddressUpdatedEvent addressUpdatedEvent) + public async Task Handle(MemberAddressUpdatedEvent addressUpdatedEvent, CancellationToken cancellationToken) { var member = addressUpdatedEvent.Member; if (member.Address is null) return; diff --git a/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs index 1ba127236..f6263771a 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs @@ -1,4 +1,5 @@ using System.Linq; +using System.Threading; using System.Threading.Tasks; using DevBetterWeb.Core; using DevBetterWeb.Core.Events; @@ -21,7 +22,7 @@ public NotifyOnNewMemberCreatedAndProfileUpdatedHandler(UserManager userManager, _emailService = emailService; } - public async Task Handle(NewMemberCreatedEvent domainEvent) + public async Task Handle(NewMemberCreatedEvent domainEvent, CancellationToken cancellationToken) { var usersInAdminRole = await _userManager.GetUsersInRoleAsync(AuthConstants.Roles.ADMINISTRATORS); diff --git a/src/DevBetterWeb.Infrastructure/Handlers/UpdateThumbVideoAddedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/UpdateThumbVideoAddedHandler.cs deleted file mode 100644 index 66ffc1b7f..000000000 --- a/src/DevBetterWeb.Infrastructure/Handlers/UpdateThumbVideoAddedHandler.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Threading.Tasks; -using DevBetterWeb.Core.Events; -using DevBetterWeb.Core.Interfaces; - -namespace DevBetterWeb.Core.Handlers; - -public class UpdateThumbVideoAddedHandler : IHandle -{ - private readonly IVideosService _videosService; - - public UpdateThumbVideoAddedHandler(IVideosService videosService) - { - _videosService = videosService; - } - - public Task Handle(VideoAddedEvent domainEvent) - { - long.TryParse(domainEvent.Video.VideoId, out var videoId); - - return _videosService.UpdateVideoThumbnailsAsync(videoId); - } -} diff --git a/src/DevBetterWeb.Infrastructure/Services/VideosService.cs b/src/DevBetterWeb.Infrastructure/Services/VideosService.cs index 6b224cd0e..d3d5b7ebe 100644 --- a/src/DevBetterWeb.Infrastructure/Services/VideosService.cs +++ b/src/DevBetterWeb.Infrastructure/Services/VideosService.cs @@ -123,8 +123,7 @@ public async Task AddArchiveVideoInfo(ArchiveVideo archiveVideo, CancellationTok var existVideo = await _repositoryArchiveVideo.FirstOrDefaultAsync(spec, cancellationToken); if (existVideo == null) { - var videoAddedEvent = new VideoAddedEvent(archiveVideo); - archiveVideo.AddDomainEvent(videoAddedEvent); + archiveVideo.NewVideoAdded(); _ = await _repositoryArchiveVideo.AddAsync(archiveVideo, cancellationToken); } else