Вложенные списки и Automapper.Map
Итак, у меня есть 2 объекта, AlbumDto и AlbumMediaDto.
public class AlbumDto
{
public int AlbumId { get; set; }
public string Title { get; set; }
public DateTimeOffset? AlbumDate { get; set; }
public AlbumMediasDto Media { get; set; }// list of media
}
И у меня есть метод из репо, который будет возвращать список альбомов (где каждый имеет свойства, упомянутые выше, который включает в себя список медиа)
var albumsForChild = await GetTenantRepository<IAlbumRepository>().GetAlbumsForChild(childId);
Поэтому я не уверен, как сопоставить их с этими Dtos с помощью AutoMapper (я знаю, что всегда могу использовать вложенный foreach и заполнять все соответствующим образом, но думал о том, как научиться делать это правильно).
Любая помощь приветствуется!
1 ответ
Можете ли вы работать с десериализацией JSon? Если да, ниже может быть ваше решение.
Бизнес логика:
public IEnumerable<AlbumDto> GetAllAlbums()
{
var allAlbums = _theApiWrapper.ExecuteGet<IEnumerable<AlbumDto>>("theApiRoute");
return allAlbums;
}
Repository:
public T ExecuteGet<T>(string endpoint)
{
var uri = $"https://apiurl.company.com/api/v1/{endpoint}";
using (HttpClient client = new HttpClient())
{
var x = client.GetAsync(uri);
var result = x.Result.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<T>(
result,
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }
);
}
}