Beispiel #1
0
        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));
        }
Beispiel #2
0
        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>()
                };
            });
        }
Beispiel #3
0
 public Func <CancellationToken, Task <MediaBundle <Artist> > > CreateMethod(IMetadataRepository metadataRepository)
 {
     return(cancelToken => metadataRepository.GetArtistAsync(UserId, Id, cancelToken));
 }