using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Sony.Filtr.Core.EditorialPlaylists; using Sony.Filtr.Core.Genres; using Sony.Filtr.Core.Releases; using Sony.Filtr.Search; using Sony.Filtr.Tasks.WorkTask; namespace Sony.Filtr.Worker.Onetime { class IndexEverything { private readonly SearchManager _searchManager; private readonly ReleasesManager _releasesManager; private readonly GenreManager _genreManager; private readonly EditorialPlaylistManager _editorialPlaylistManager; private readonly PlaylistCategoryManager _playlistCategoryManager; public IndexEverything(SearchManager searchManager, ReleasesManager releasesManager, GenreManager genreManager, EditorialPlaylistManager editorialPlaylistManager, PlaylistCategoryManager playlistCategoryManager) { _searchManager = searchManager; _releasesManager = releasesManager; _genreManager = genreManager; _editorialPlaylistManager = editorialPlaylistManager; _playlistCategoryManager = playlistCategoryManager; } public async Task Execute() { //_searchManager.DeleteAllReleasesFromIndexAsync().Wait(); Console.WriteLine("Begin indexing of releases"); var releases = _releasesManager.GetReleases(null); await _searchManager.IndexReleasesAsync(releases.ToList()); Console.WriteLine("Done indexing of releases"); Console.WriteLine("Begin indexing of playlists"); var playlists = await _editorialPlaylistManager.GetEditorialPlaylistsAsync(null, onlySony: false, onlyActive: false); var extendedPlaylistAttributes = await _editorialPlaylistManager.GetPlaylistAttributesAsync(playlists); var categories = await _playlistCategoryManager.GetCategoriesAsync(playlists); await _searchManager.IndexPlaylistsAsync(extendedPlaylistAttributes, categories); Console.WriteLine("Done indexing of playlists"); Console.WriteLine("Begin indexing of tags"); var genres = _genreManager.GetGenres(null); await _searchManager.IndexTagsAsync(genres); Console.WriteLine("Done indexing of tags"); } } }