Example #1
0
        public async Task <ActionResult <AlbumDownloadModel> > GetRandomAlbumAsync(string genre = "", bool failed = false)
        {
            try
            {
                var randomAlbum = await AlbumModel.FetchRandomAlbumAsync(_spotifyAPICredentials, genre).ConfigureAwait(false);

                return(Ok(MapEntityToDownloadModel <AlbumResponseModel, AlbumDownloadModel>(randomAlbum)));
            }
            catch (Exception err)
            {
                if (!failed)
                {
                    return(await GetRandomAlbumAsync(genre, true).ConfigureAwait(false));
                }
                else
                {
                    LogException(err);
                    return(Problem("There was an error fetching a random album from Spotify", statusCode: 500, type: err.GetType().ToString()));
                }
            }
        }