using OF_DL.Models.Dtos.Purchased; using OF_DL.Models.Dtos.Common; using MessageDtos = OF_DL.Models.Dtos.Messages; using CommonEntities = OF_DL.Models.Entities.Common; using MessageEntities = OF_DL.Models.Entities.Messages; using PurchasedEntities = OF_DL.Models.Entities.Purchased; namespace OF_DL.Models.Mappers; public static class PurchasedMapper { public static PurchasedEntities.Purchased FromDto(PurchasedDto? dto) { PurchasedEntities.Purchased mapped = new() { HasMore = dto?.HasMore ?? false }; if (dto?.List == null) { return mapped; } foreach (ListItemDto entry in dto.List) { mapped.List.Add(MapList(entry)); } return mapped; } private static PurchasedEntities.ListItem MapList(ListItemDto dto) => new() { ResponseType = dto.ResponseType, Text = dto.Text, Price = dto.Price, IsOpened = dto.IsOpened, IsArchived = dto.IsArchived, CreatedAt = dto.CreatedAt, PostedAt = dto.PostedAt, Id = dto.Id, Media = MapMedia(dto.Media), Previews = dto.Previews, Preview = dto.Preview, FromUser = MapFromUser(dto.FromUser), Author = MapAuthor(dto.Author) }; private static CommonEntities.FromUser MapFromUser(FromUserDto? dto) => dto == null ? new CommonEntities.FromUser() : new CommonEntities.FromUser { Id = dto.Id }; private static CommonEntities.Author MapAuthor(AuthorDto? dto) => dto == null ? new CommonEntities.Author() : new CommonEntities.Author { Id = dto.Id }; private static List? MapMedia(List? media) => media?.Select(MessagesMapper.MapMedium).ToList(); }