profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
SplitPresetBllDtoFactory.cs 2,229 bytes
1 using App.BLL.DTO;
2 using App.Domain;
3
4 namespace App.BLL.Mappers;
5
6 public static class SplitPresetBllDtoFactory
7 {
8 public static SplitPresetBllDto Create(SplitPreset entity, bool includeMembers = 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 Name = entity.Name,
16 SplitMethod = entity.SplitMethod,
17 CreatedById = entity.CreatedById,
18 CreatedBy = entity.CreatedBy != null ? new AppUserBllDto
19 {
20 Id = entity.CreatedBy.Id,
21 FirstName = entity.CreatedBy.FirstName,
22 LastName = entity.CreatedBy.LastName,
23 Email = entity.CreatedBy.Email
24 } : null,
25 Members = includeMembers && entity.Members != null
26 ? entity.Members.Select(SplitPresetMemberBllDtoFactory.Create).ToList()
27 : null
28 };
29
30 public static List<SplitPresetBllDto> CreateList(IEnumerable<SplitPreset> entities, bool includeMembers = false)
31 => entities.Select(p => Create(p, includeMembers)).ToList();
32
33 public static SplitPreset ToEntity(SplitPresetBllDto dto) => new()
34 {
35 Id = dto.Id,
36 TripId = dto.TripId,
37 Name = dto.Name,
38 SplitMethod = dto.SplitMethod,
39 CreatedById = dto.CreatedById
40 };
41 }
42
43 public static class SplitPresetMemberBllDtoFactory
44 {
45 public static SplitPresetMemberBllDto Create(SplitPresetMember entity) => new()
46 {
47 Id = entity.Id,
48 CreatedAt = entity.CreatedAt,
49 UpdatedAt = entity.UpdatedAt,
50 SplitPresetId = entity.SplitPresetId,
51 UserId = entity.UserId,
52 UserFullName = entity.User != null
53 ? $"{entity.User.FirstName} {entity.User.LastName}".Trim()
54 : null,
55 ShareWeight = entity.ShareWeight,
56 Percentage = entity.Percentage
57 };
58
59 public static SplitPresetMember ToEntity(SplitPresetMemberBllDto dto) => new()
60 {
61 Id = dto.Id,
62 SplitPresetId = dto.SplitPresetId,
63 UserId = dto.UserId,
64 ShareWeight = dto.ShareWeight,
65 Percentage = dto.Percentage
66 };
67 }
68