From 1bd4124da4b82b6c5bf66adfefe4b240619f4907 Mon Sep 17 00:00:00 2001 From: Michael Spiegel <70846025+Smightym8@users.noreply.github.com> Date: Thu, 11 Jul 2024 07:58:05 +0200 Subject: [PATCH] Removed throwing exception for not existing tournament. --- .../TournamentCanceledEventHandler.cs | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/ClubService.Application/EventHandlers/TournamentEventHandlers/TournamentCanceledEventHandler.cs b/ClubService.Application/EventHandlers/TournamentEventHandlers/TournamentCanceledEventHandler.cs index f6901c68..86722412 100644 --- a/ClubService.Application/EventHandlers/TournamentEventHandlers/TournamentCanceledEventHandler.cs +++ b/ClubService.Application/EventHandlers/TournamentEventHandlers/TournamentCanceledEventHandler.cs @@ -35,29 +35,31 @@ public async Task Handle(DomainEnvelope domainEnvelope) var tennisClubReadModel = await tennisClubReadModelRepository.GetTennisClubById(tournamentReadModel.TennisClubId); - if (tennisClubReadModel == null) + if (tennisClubReadModel != null) { - loggerService.LogTennisClubNotFound(tournamentReadModel.TennisClubId); - throw new TennisClubNotFoundException(domainEnvelope.EntityId); - } - - await tournamentReadModelRepository.Delete(tournamentReadModel); + var members = await memberReadModelRepository.GetMembersByTennisClubId(tennisClubReadModel.TennisClubId.Id); + var mailSubject = $"Tournament {tournamentReadModel.Name} canceled"; + var mailBody = $""" + Unfortunately the tournament '{tournamentReadModel.Name}' that would have been taking + place from the {tournamentReadModel.StartDate} to the {tournamentReadModel.EndDate} has + been canceled. + """; - var members = await memberReadModelRepository.GetMembersByTennisClubId(tennisClubReadModel.TennisClubId.Id); - var mailSubject = $"Tournament {tournamentReadModel.Name} canceled"; - var mailBody = $""" - Unfortunately the tournament '{tournamentReadModel.Name}' that would have been taking - place from the {tournamentReadModel.StartDate} to the {tournamentReadModel.EndDate} has - been canceled. - """; - - foreach (var member in members) + foreach (var member in members) + { + var emailMessage = new EmailMessage(Guid.NewGuid(), member.Email, mailSubject, mailBody, + DateTime.UtcNow); + await emailOutboxRepository.Add(emailMessage); + } + } + else { - var emailMessage = new EmailMessage(Guid.NewGuid(), member.Email, mailSubject, mailBody, - DateTime.UtcNow); - await emailOutboxRepository.Add(emailMessage); + // We can't throw an exception here because deleting a tennis club triggers + // that all associated tournaments are deleted. + loggerService.LogTennisClubNotFound(tournamentReadModel.TennisClubId); } + await tournamentReadModelRepository.Delete(tournamentReadModel); loggerService.LogTournamentCanceled(tournamentReadModel.TournamentId); }