public async Task <string> GetToken(ISpotifyTokenRequest req)
        {
            try
            {
                string access_token = "";
                using (var http = new HttpClient())
                {
                    http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", req.ToAuthorization());

                    Dictionary <string, string> dict = new Dictionary <string, string>();
                    dict.Add("grant_type", req.GetGrantType());

                    FormUrlEncodedContent content = new FormUrlEncodedContent(dict);

                    HttpResponseMessage request = await http.PostAsync(_config["Spotify:TokenURI"], content);

                    Task <string> response = request.Content.ReadAsStringAsync();

                    if (response.IsCompleted)
                    {
                        resp         = response.Result.JsonToObject <SpotifyTokenResponse>();
                        access_token = resp.access_token;
                    }

                    return(access_token);
                };
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
        }
        public void PrepareEnvironment()
        {
            // Inicializa tabela de cashback
            _cashbackService.InitializeCashbackDatabase();

            // incializa classe de serviços
            spotifyService = _factory.GetSpotifyService();

            // recupera valores do arquivo appsettings.json para requisitar token
            tokenRequest = _factory.GetSpotifyTokenRequest();

            // recupera o token através da API do Spotify
            string access_token = spotifyService.GetToken(tokenRequest).Result;

            // obtém lista de álbuns da API do Spotify
            List <Album> list = spotifyService.GetAlbums(access_token);

            // insere dados no BD
            _albumService.AddAlbumsToDatabase(list);
        }
 public SpotifyFactory(ISpotifyTokenRequest tokenRequest, ISpotifyService service)
 {
     _tokenRequest = tokenRequest;
     _service      = service;
 }