using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Sony.Filtr.Buzz; using Sony.Filtr.Contracts.Definitions; using Sony.Filtr.Contracts.Entities; using Sony.Filtr.Contracts.Entities.Buzz; using Sony.Filtr.DeezerAPI; using Sony.Filtr.DeezerAPI.Model; using Sony.Filtr.Utility.Extensions; namespace Sony.Filtr.Worker.Onetime { public class AddDeezerPlaylistUsers { private readonly DeezerApi _deezerApi; private readonly BuzzAccountManager _buzzAccountManager; public AddDeezerPlaylistUsers(DeezerApi deezerApi, BuzzAccountManager buzzAccountManager) { _deezerApi = deezerApi; _buzzAccountManager = buzzAccountManager; } public async Task ExecuteAsync() { var file = new FileInfo("importDeezerPlaylistUsers.txt"); var reader = file.OpenText(); List deezerPlaylistIds = new List(); while (!reader.EndOfStream) { var line = await reader.ReadLineAsync(); if (!string.IsNullOrWhiteSpace(line)) deezerPlaylistIds.Add(int.Parse(line)); } List deezerPlaylists = new List(); foreach (var deezerPlaylistId in deezerPlaylistIds) { var playlist = await _deezerApi.GetPlaylistAsync(deezerPlaylistId); if (playlist != null) deezerPlaylists.Add(playlist); } var creators = deezerPlaylists.Select(p => p.creator).Distinct(); foreach (var creator in creators) { await _buzzAccountManager.AddBuzzUserAsync(new BuzzUser() { BuzzCategoryId = null, Username = creator.id.ToString(), ServiceType = ServiceType.Deezer }); } } } }