public async Task <MediaThumbnail?> GetThumbnailAsync( Album album, ThumbnailSizeName size, CancellationToken cancellationToken) { Guid?mediaId; if (album.CoverMediaId.HasValue) { mediaId = album.CoverMediaId.Value; } else { mediaId = (await GetMediaIdsAsync(album, cancellationToken)) .FirstOrDefault(); } if (mediaId.HasValue) { IReadOnlyDictionary <Guid, MediaThumbnail>?thumbs = await _mediaStore .GetThumbnailsByMediaIdsAsync( new[] { mediaId.Value }, size, cancellationToken); return(thumbs.Values.FirstOrDefault()); } return(null); }
protected async override Task <IReadOnlyDictionary <Tuple <Guid, ThumbnailSizeName>, MediaThumbnail> > LoadBatchAsync( IReadOnlyList <Tuple <Guid, ThumbnailSizeName> > keys, CancellationToken cancellationToken) { ThumbnailSizeName size = keys.First().Item2; IReadOnlyDictionary <Guid, MediaThumbnail> thumbs = await _mediaStore .GetThumbnailsByMediaIdsAsync( keys.Select(x => x.Item1), size, cancellationToken); return(thumbs.ToDictionary(k => new Tuple <Guid, ThumbnailSizeName>(k.Key, size), v => v.Value)); }