private async Task <string> GetAccessTokenAsync()
        {
            var credentials = await _credentialsRepository.RetrieveAsync();

            if (credentials != null && !string.IsNullOrEmpty(credentials.AccessToken) && credentials.CreateDate.AddSeconds(credentials.ExpiresIn - 10) > DateTime.UtcNow)
            {
                return($"{credentials.TokenType} {credentials.AccessToken}");
            }

            switch (_configs["AuthorizationMode"])
            {
            case "InitialConfiguration":
            {
                // IMPORTANT! Use: GetSpotifyAccessTokenCode.html

                credentials = await CreateCredentialsAsync();

                Log.Fatal("{Method} Write the following refresh token value to the AppSettings:Spotify:RefreshToken: {RefreshToken}",
                          MethodBase.GetCurrentMethod().Name, credentials.RefreshToken);    // Write this to the RefreshToken field in config file!!!
                break;
            }

            case "RefreshToken":
            {
                credentials = await RefreshCredentialsAsync();

                break;
            }

            default:
            {
                throw new Exception($"{MethodBase.GetCurrentMethod().Name} Invalid AuthorizationMode: {_configs["AuthorizationMode"]} Check settings!");
            }
            }

            if (!await _credentialsRepository.RegisterAsync(credentials))
            {
                Log.Error("Failed to register credentials! {@Credentials}", credentials);
            }

            return($"{credentials.TokenType} {credentials.AccessToken}");
        }