-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTournamentReadModel.cs
35 lines (30 loc) · 1.13 KB
/
TournamentReadModel.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using ClubService.Domain.Event.Tournament;
namespace ClubService.Domain.ReadModel;
public class TournamentReadModel
{
private TournamentReadModel(Guid tournamentId, Guid tennisClubId, string name, DateOnly startDate, DateOnly endDate)
{
TournamentId = tournamentId;
TennisClubId = tennisClubId;
Name = name;
StartDate = startDate;
EndDate = endDate;
}
public Guid TournamentId { get; }
public Guid TennisClubId { get; }
public string Name { get; }
public DateOnly StartDate { get; }
public DateOnly EndDate { get; }
public static TournamentReadModel FromDomainEvent(TournamentConfirmedEvent tournamentConfirmedEvent)
{
var startDate = tournamentConfirmedEvent.Tournament.Days.OrderBy(d => d.Day).First();
var endDate = tournamentConfirmedEvent.Tournament.Days.OrderBy(d => d.Day).Last();
return new TournamentReadModel(
tournamentConfirmedEvent.Tournament.Id,
tournamentConfirmedEvent.Tournament.ClubId,
tournamentConfirmedEvent.Tournament.Name,
startDate.Day,
endDate.Day
);
}
}