profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
InvitationBllDtoFactory.cs 1,368 bytes
1 using App.BLL.DTO;
2 using App.Domain;
3
4 namespace App.BLL.Mappers;
5
6 public static class InvitationBllDtoFactory
7 {
8 public static TripInvitationBllDto Create(TripInvitation entity) => new()
9 {
10 Id = entity.Id,
11 CreatedAt = entity.CreatedAt,
12 UpdatedAt = entity.UpdatedAt,
13 TripId = entity.TripId,
14 Trip = entity.Trip != null ? TripBllDtoFactory.Create(entity.Trip) : null,
15 InvitedByUserId = entity.InvitedByUserId,
16 InvitedByUser = entity.InvitedByUser != null ? new AppUserBllDto
17 {
18 Id = entity.InvitedByUser.Id,
19 FirstName = entity.InvitedByUser.FirstName,
20 LastName = entity.InvitedByUser.LastName,
21 Email = entity.InvitedByUser.Email
22 } : null,
23 Token = entity.Token,
24 Status = entity.Status,
25 ExpiresAt = entity.ExpiresAt,
26 RespondedAt = entity.RespondedAt
27 };
28
29 public static List<TripInvitationBllDto> CreateList(IEnumerable<TripInvitation> entities)
30 => entities.Select(Create).ToList();
31
32 public static TripInvitation ToEntity(TripInvitationBllDto dto) => new()
33 {
34 Id = dto.Id,
35 TripId = dto.TripId,
36 InvitedByUserId = dto.InvitedByUserId,
37 Token = dto.Token,
38 Status = dto.Status,
39 ExpiresAt = dto.ExpiresAt,
40 RespondedAt = dto.RespondedAt
41 };
42 }
43