Вложенные списки и 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 }
            );
    }
}
Другие вопросы по тегам