using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Sony.Filtr.Contracts.SpotifyIntegration; using Sony.Filtr.Core.EditorialPlaylists; using Sony.Filtr.Database; using Sony.Filtr.Tasks.Tasks; namespace Sony.Filtr.Worker.Onetime { public class FixPlaylistImages { private readonly EditorialPlaylistManager _editorialPlaylistManager; private readonly UpdatePlaylistInfoTask _updatePlaylistInfoTask; public FixPlaylistImages(EditorialPlaylistManager editorialPlaylistManager, UpdatePlaylistInfoTask updatePlaylistInfoTask) { _editorialPlaylistManager = editorialPlaylistManager; _updatePlaylistInfoTask = updatePlaylistInfoTask; } public async Task ExecuteAsync() { //var playlists = await _editorialPlaylistManager.GetLightweightEditorialPlaylistsAsync(null, onlySony: true, onlyActive: false); var playlistToFix = await GetPlaylistUrisWithoutImageAsync(); await _updatePlaylistInfoTask.ExecuteCertainPlaylistAsync(playlistToFix.Select(p => p).ToList()); } private async Task> GetPlaylistUrisWithoutImageAsync() { var playlistTracks = new List(); using (var conn = DatabaseHandler.GetOpenConnection()) { var cmd = conn.CreateCommand(); cmd.CommandText = "SELECT PlaylistUri FROM tblSpotifyPlaylist " + "WHERE BuzzCategoryId IN (1) AND Image IS NULL"; var sqlReader = await cmd.ExecuteReaderAsync(); while (await sqlReader.ReadAsync()) { playlistTracks.Add(sqlReader.GetString(0)); } conn.Close(); } return playlistTracks; } } }