public async Task <AlbumDTO> AddAlbum(AlbumDTO album) { try { Album newAlbum = _mapper.Map <Album>(album); newAlbum.AlbumId = Guid.NewGuid(); newAlbum.Songs = new List <Song>(); newAlbum.Artist = new Artist(); foreach (var songId in album.SongIds) { Song song = await GetSongBySongId(songId); if (song != null) { await _albumRepository.AddAlbumSong(new AlbumSong() { AlbumSongId = Guid.NewGuid(), SongId = songId, AlbumId = newAlbum.AlbumId, }); } } Artist artist = await GetArtistByArtistId(album.ArtistId); if (artist != null) { newAlbum.ArtistId = artist.ArtistId; } await _albumRepository.AddAlbum(newAlbum); return(album); } catch (Exception ex) { throw ex; } }