profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
SettlementBllDtoFactory.cs 3,149 bytes
1 using App.BLL.DTO;
2 using App.Domain;
3
4 namespace App.BLL.Mappers;
5
6 public static class SettlementBllDtoFactory
7 {
8 public static SettlementPlanBllDto Create(SettlementPlan entity, bool includePayments = false) => 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 CreatedByUserId = entity.CreatedByUserId,
16 CreatedByUser = entity.CreatedByUser != null ? new AppUserBllDto
17 {
18 Id = entity.CreatedByUser.Id,
19 FirstName = entity.CreatedByUser.FirstName,
20 LastName = entity.CreatedByUser.LastName,
21 Email = entity.CreatedByUser.Email
22 } : null,
23 TotalAmount = entity.TotalAmount,
24 Status = entity.Status,
25 CompletedAt = entity.CompletedAt,
26 Payments = includePayments && entity.Payments != null
27 ? entity.Payments.Select(SettlementPaymentBllDtoFactory.Create).ToList()
28 : null
29 };
30
31 public static List<SettlementPlanBllDto> CreateList(IEnumerable<SettlementPlan> entities, bool includePayments = false)
32 => entities.Select(p => Create(p, includePayments)).ToList();
33
34 public static SettlementPlan ToEntity(SettlementPlanBllDto dto) => new()
35 {
36 Id = dto.Id,
37 TripId = dto.TripId,
38 CreatedByUserId = dto.CreatedByUserId,
39 TotalAmount = dto.TotalAmount,
40 Status = dto.Status,
41 CompletedAt = dto.CompletedAt
42 };
43 }
44
45 public static class SettlementPaymentBllDtoFactory
46 {
47 public static SettlementPaymentBllDto Create(SettlementPayment entity) => new()
48 {
49 Id = entity.Id,
50 CreatedAt = entity.CreatedAt,
51 UpdatedAt = entity.UpdatedAt,
52 SettlementPlanId = entity.SettlementPlanId,
53 FromUserId = entity.FromUserId,
54 FromUser = entity.FromUser != null ? new AppUserBllDto
55 {
56 Id = entity.FromUser.Id,
57 FirstName = entity.FromUser.FirstName,
58 LastName = entity.FromUser.LastName,
59 Email = entity.FromUser.Email
60 } : null,
61 ToUserId = entity.ToUserId,
62 ToUser = entity.ToUser != null ? new AppUserBllDto
63 {
64 Id = entity.ToUser.Id,
65 FirstName = entity.ToUser.FirstName,
66 LastName = entity.ToUser.LastName,
67 Email = entity.ToUser.Email
68 } : null,
69 Amount = entity.Amount,
70 Status = entity.Status,
71 MarkedPaidAt = entity.MarkedPaidAt,
72 ConfirmedAt = entity.ConfirmedAt
73 };
74
75 public static List<SettlementPaymentBllDto> CreateList(IEnumerable<SettlementPayment> entities)
76 => entities.Select(Create).ToList();
77
78 public static SettlementPayment ToEntity(SettlementPaymentBllDto dto) => new()
79 {
80 Id = dto.Id,
81 SettlementPlanId = dto.SettlementPlanId,
82 FromUserId = dto.FromUserId,
83 ToUserId = dto.ToUserId,
84 Amount = dto.Amount,
85 Status = dto.Status,
86 MarkedPaidAt = dto.MarkedPaidAt,
87 ConfirmedAt = dto.ConfirmedAt
88 };
89 }
90