@@ -35,29 +35,31 @@ public async Task Handle(DomainEnvelope<IDomainEvent> domainEnvelope)
35
35
var tennisClubReadModel =
36
36
await tennisClubReadModelRepository . GetTennisClubById ( tournamentReadModel . TennisClubId ) ;
37
37
38
- if ( tennisClubReadModel = = null )
38
+ if ( tennisClubReadModel ! = null )
39
39
{
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
+ """ ;
45
47
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
55
56
{
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 ) ;
59
60
}
60
61
62
+ await tournamentReadModelRepository . Delete ( tournamentReadModel ) ;
61
63
loggerService . LogTournamentCanceled ( tournamentReadModel . TournamentId ) ;
62
64
}
63
65
0 commit comments