public Task <MediaBundle <Artist> > GetArtistAsync(Guid userId, string name, Guid collectionId, bool create, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(name)) { return(Task.FromResult((MediaBundle <Artist>)null)); } if (create) { return(_metadataRepositoryCache.GetArtistAsync(userId, name, collectionId, cancellationToken)); } return(_metadataRepository.GetArtistAsync(userId, name, collectionId, cancellationToken)); }
public Func <CancellationToken, Task <MediaBundle <Artist> > > CreateMethod(IMetadataRepository metadataRepository) { return(async cancelToken => { var mediaBundle = await metadataRepository.GetArtistAsync(UserId, Artist, CollectionId, cancelToken).ConfigureAwait(false); Artist artist = null; if (mediaBundle != null) { artist = mediaBundle.Media; } if (artist != null) { return mediaBundle; } var now = DateTime.UtcNow; artist = new Artist { Name = Artist, CollectionId = CollectionId, DateAdded = now, DateModified = now }; await metadataRepository.InsertOrUpdateArtistAsync(artist, cancelToken).ConfigureAwait(false); return new MediaBundle <Artist> { Media = artist, Dispositions = new List <Disposition>(), Playback = new List <Playback>() }; }); }
public Func <CancellationToken, Task <MediaBundle <Artist> > > CreateMethod(IMetadataRepository metadataRepository) { return(cancelToken => metadataRepository.GetArtistAsync(UserId, Id, cancelToken)); }