示例#1
0
        public async Task Handle(ImportarProdutosNotification notification, CancellationToken cancellationToken)
        {
            var albuns = new Dictionary <GeneroEnum, SeedGenreResult>();

            albuns.Add(GeneroEnum.Classico, SpotifyFacade.Instance.ObterCatalogoClassic());
            albuns.Add(GeneroEnum.Pop, SpotifyFacade.Instance.ObterCatalogoPop());
            albuns.Add(GeneroEnum.MPB, SpotifyFacade.Instance.ObterCatalogoMPB());
            albuns.Add(GeneroEnum.Rock, SpotifyFacade.Instance.ObterCatalogoRock());

            var albunsEntity = new List <ProdutoEntity>();

            foreach (var album in albuns)
            {
                if (album.Value == null)
                {
                    continue;
                }

                album.Value.Tracks.ForEach(track =>
                {
                    var novoAlbum     = BaseEntity.Factory.CreateInstance <ProdutoEntity>();
                    novoAlbum.Nome    = track.Album.Name;
                    novoAlbum.Preco   = gerarPreco();
                    novoAlbum.Genero  = (byte)album.Key;
                    novoAlbum.Artista = track.Album.Artists.First().Name;

                    albunsEntity.Add(novoAlbum);
                });
            }

            await _repository.AdicionarLista(albunsEntity);

            SpotifyFacade.Instance.DadosImportados = true;
        }