コード例 #1
0
        public async Task ValidateAsync(IAlbumContainer albumContainer)
        {
            if (albumContainer == null)
            {
                throw new ArgumentNullException(nameof(albumContainer));
            }

            var album = await this.GetBy(albumContainer);

            if (albumContainer.AlbumId.HasValue && album == null)
            {
                throw new InvalidOperationException($"Album not found by id {albumContainer.AlbumId}");
            }
        }
コード例 #2
0
        public async Task ValidateAsync(IAlbumContainer albumContainer)
        {
            if (albumContainer == null)
            {
                throw new ArgumentNullException(nameof(albumContainer));
            }

            var album = await GetAsync(albumContainer);

            if (album == null)
            {
                throw new InvalidOperationException($"Album with id {albumContainer.AlbumId} not found");
            }
        }
コード例 #3
0
        public async Task <Album> GetByAsync(IAlbumContainer album)
        {
            var result = Mapper.Map <Album>(await Context.Album
                                            .Select(x => new Album
            {
                Id     = x.Id, Name = x.Name, ImageUrl = x.ImageUrl,
                Artist = new Artist
                {
                    Id = x.Artist.Id, Name = x.Artist.Name, ImageUrl = x.Artist.ImageUrl
                },
                Song = x.Song.Select(song => new Song {
                    Id = song.Id, Name = song.Name, Duration = song.Duration
                })
            })
                                            .FirstOrDefaultAsync(x => x.Id == album.AlbumId));

            result.Artist.Album = null;
            return(result);
        }
コード例 #4
0
 private Task <Album> GetBy(IAlbumContainer albumContainer)
 {
     return(this.AlbumDataAccess.GetByAsync(albumContainer));
 }
コード例 #5
0
 public async Task <Album> GetByAsync(IAlbumContainer album)
 {
     return(album.AlbumId.HasValue
         ? this.Mapper.Map <Album>(await this.Context.Album.FirstOrDefaultAsync(x => x.Id == album.AlbumId))
         : null);
 }
コード例 #6
0
 public async Task <Album> GetAsync(IAlbumContainer albumContainer)
 {
     return(await AlbumDataAccess.GetByAsync(albumContainer));
 }