@@ -35,29 +35,31 @@ public async Task Handle(DomainEnvelope<IDomainEvent> domainEnvelope)
3535 var tennisClubReadModel =
3636 await tennisClubReadModelRepository . GetTennisClubById ( tournamentReadModel . TennisClubId ) ;
3737
38- if ( tennisClubReadModel = = null )
38+ if ( tennisClubReadModel ! = null )
3939 {
40- loggerService . LogTennisClubNotFound ( tournamentReadModel . TennisClubId ) ;
41- throw new TennisClubNotFoundException ( domainEnvelope . EntityId ) ;
42- }
43-
44- await tournamentReadModelRepository . Delete ( tournamentReadModel ) ;
40+ var members = await memberReadModelRepository . GetMembersByTennisClubId ( tennisClubReadModel . TennisClubId . Id ) ;
41+ var mailSubject = $ "Tournament { tournamentReadModel . Name } canceled";
42+ var mailBody = $ """
43+ Unfortunately the tournament '{ tournamentReadModel . Name } ' that would have been taking
44+ place from the { tournamentReadModel . StartDate } to the { tournamentReadModel . EndDate } has
45+ been canceled.
46+ """ ;
4547
46- var members = await memberReadModelRepository . GetMembersByTennisClubId ( tennisClubReadModel . TennisClubId . Id ) ;
47- var mailSubject = $ "Tournament { tournamentReadModel . Name } canceled";
48- var mailBody = $ """
49- Unfortunately the tournament '{ tournamentReadModel . Name } ' that would have been taking
50- place from the { tournamentReadModel . StartDate } to the { tournamentReadModel . EndDate } has
51- been canceled.
52- """ ;
53-
54- foreach ( var member in members )
48+ foreach ( var member in members )
49+ {
50+ var emailMessage = new EmailMessage ( Guid . NewGuid ( ) , member . Email , mailSubject , mailBody ,
51+ DateTime . UtcNow ) ;
52+ await emailOutboxRepository . Add ( emailMessage ) ;
53+ }
54+ }
55+ else
5556 {
56- var emailMessage = new EmailMessage ( Guid . NewGuid ( ) , member . Email , mailSubject , mailBody ,
57- DateTime . UtcNow ) ;
58- await emailOutboxRepository . Add ( emailMessage ) ;
57+ // We can't throw an exception here because deleting a tennis club triggers
58+ // that all associated tournaments are deleted.
59+ loggerService . LogTennisClubNotFound ( tournamentReadModel . TennisClubId ) ;
5960 }
6061
62+ await tournamentReadModelRepository . Delete ( tournamentReadModel ) ;
6163 loggerService . LogTournamentCanceled ( tournamentReadModel . TournamentId ) ;
6264 }
6365
0 commit comments