public async Task <RequestResult> GetDataSpotify() { var result = new RequestResult(StatusResult.Success); try { var autorization = await GetAutorization(); if (autorization != null) { var generosList = _generoService.GetAllGenero(); var albumList = new List <Album>(); Random numRandom = new Random(); using (var client = _httpClientFactory.CreateClient("BlueDiscosOnlineClient")) { string baseURL = Configuration.GetSection("SpotifyConnection:BaseURL").Value; client.BaseAddress = new Uri(baseURL); var searchAlbumLimite = Configuration.GetSection("SpotifyConnection:SearchAlbumLimite").Value; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", autorization.Access_token); foreach (var item in generosList) { var spotifyFilter = new SpotifyFilter(); var url = client.BaseAddress + "recommendations?limit=" + searchAlbumLimite + "&seed_genres=" + item.Descricao; var response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); if (content != null) { spotifyFilter = JsonConvert.DeserializeObject <SpotifyFilter>(content); } } foreach (var album in spotifyFilter.Tracks) { albumList.Add(new Album { Nome = album.Album.Name, Artista = album.Artists.FirstOrDefault().Name, GeneroId = item.Id, Valor = Convert.ToDecimal(numRandom.Next(1, 99) + Math.Round(numRandom.NextDouble(), 2)) }); } } } if (albumList.Count() > 0) { using (var unitOfWork = _unitOfWorkFactory.CreateUnitOfWork()) { foreach (var album in albumList) { unitOfWork.Repository.Add(album); } await unitOfWork.Commit(); } } result.Data = albumList; } } catch (Exception) { result.Status = StatusResult.Danger; } return(result); }