public async Task RefreshPlaylist(IList <ChainLink> lastMonthsChainLinks, SpotifyPlaylist playlist) { var accessToken = await GetAccessToken(); var trackIds = GetTrackIds(lastMonthsChainLinks, accessToken); var updatePlayListDescriptionTask = UpdatePlaylistDescription(playlist, accessToken); var updatePlaylistTask = UpdatePlaylist(playlist, accessToken, await trackIds); await Task.WhenAll(new List <Task> { updatePlayListDescriptionTask, updatePlaylistTask }); }
private async Task UpdatePlaylist(SpotifyPlaylist playlist, string accessToken, List <string> trackIds) { _log.LogInformation($"Updating Spotify playlist {playlist.PlaylistUri}..."); var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); var payload = new { uris = trackIds }; var response = await client.PutAsync($"{playlist.PlaylistUri}/tracks", new StringContent(JsonConvert.SerializeObject(payload))); if (response.IsSuccessStatusCode) { _log.LogInformation("Updated Spotify playlist"); } else { var errorMessage = await response.Content.ReadAsStringAsync(); _log.LogError($"Error updating playlist: {response.StatusCode} {errorMessage}", response); } }