55
66namespace PlayOfferService . Application . Handlers . Events ;
77
8- public class GetPlayOffersByCreatorNameHandler : IRequestHandler < GetPlayOffersByCreatorNameQuery , IEnumerable < PlayOffer > >
8+ public class GetPlayOffersByCreatorNameHandler : IRequestHandler < GetPlayOffersByCreatorNameQuery , IEnumerable < PlayOfferDto > >
99{
1010 private readonly PlayOfferRepository _playOfferRepository ;
1111 private readonly MemberRepository _memberRepository ;
12+ private readonly ClubRepository _clubRepository ;
13+ private readonly ReservationRepository _reservationRepository ;
14+ private readonly CourtRepository _courtRepository ;
1215
13- public GetPlayOffersByCreatorNameHandler ( PlayOfferRepository playOfferRepository , MemberRepository memberRepository )
16+ public GetPlayOffersByCreatorNameHandler ( PlayOfferRepository playOfferRepository , MemberRepository memberRepository , ClubRepository clubRepository , ReservationRepository reservationRepository , CourtRepository courtRepository )
1417 {
1518 _playOfferRepository = playOfferRepository ;
1619 _memberRepository = memberRepository ;
20+ _clubRepository = clubRepository ;
21+ _reservationRepository = reservationRepository ;
22+ _courtRepository = courtRepository ;
1723 }
1824
19- public async Task < IEnumerable < PlayOffer > > Handle ( GetPlayOffersByCreatorNameQuery request , CancellationToken cancellationToken )
25+ public async Task < IEnumerable < PlayOfferDto > > Handle ( GetPlayOffersByCreatorNameQuery request , CancellationToken cancellationToken )
2026 {
2127 if ( request . CreatorName . Split ( " " ) . Length > 2 )
2228 throw new ArgumentException ( "Creator name must be in the format '<FirstName> <LastName>', '<FirstName>' or '<LastName>'" ) ;
@@ -28,7 +34,22 @@ public async Task<IEnumerable<PlayOffer>> Handle(GetPlayOffersByCreatorNameQuery
2834 var playOffersByCreator = await _playOfferRepository . GetPlayOffersByIds ( null , creator . Id ) ;
2935 playOffers . AddRange ( playOffersByCreator ) ;
3036 }
37+
38+ var clubDto = ( await _clubRepository . GetAllClubs ( ) ) . Select ( club => new ClubDto ( club ) ) . ToList ( ) ;
39+ var memberDtos = ( await _memberRepository . GetAllMembers ( ) ) . Select ( member => new MemberDto ( member ) ) . ToList ( ) ;
40+ var courtDtos = ( await _courtRepository . GetAllCourts ( ) ) . Select ( court => new CourtDto ( court ) ) . ToList ( ) ;
41+ var reservationDtos = ( await _reservationRepository . GetAllReservations ( ) ) . Select ( reservation => new ReservationDto ( reservation , courtDtos ) ) . ToList ( ) ;
3142
32- return playOffers ;
43+ var playOfferDtos = new List < PlayOfferDto > ( ) ;
44+ foreach ( var playOffer in playOffers )
45+ {
46+ var club = clubDto . First ( club => club . Id == playOffer . ClubId ) ;
47+ var creator = memberDtos . First ( member => member . Id == playOffer . CreatorId ) ;
48+ var opponent = memberDtos . FirstOrDefault ( member => member . Id == playOffer . OpponentId ) ;
49+ var reservation = reservationDtos . FirstOrDefault ( reservation => reservation . Id == playOffer . ReservationId ) ;
50+ playOfferDtos . Add ( new PlayOfferDto ( playOffer , club , creator , opponent , reservation ) ) ;
51+ }
52+
53+ return playOfferDtos ;
3354 }
3455}
0 commit comments