internal static APITokenData GetAPITokenData_AndSave(string Username, string Password, ILogger Logger)
        {
            string ApiTokenBaseUri = Settings.ApiTokenBaseUri;
            string PrivateApplication_ConsumerKey = Settings.PrivateApplication_ConsumerKey;

            APITokenData APITokenData = PrivateAuthentication.GetAPITokenData(ApiTokenBaseUri, PrivateApplication_ConsumerKey, Username, Password, Logger);

            //save APITokenData.BaseURI in Settings (eg, file)
            Settings.ApiBaseUriFromTokenOrOauth = APITokenData.BaseURI;

            //save APITokenData.APIToken in Settings (eg, file)
            Settings.PrivateApplication_ApiToken = APITokenData.APIToken;

            return(APITokenData);
        }
 private void btnConnect_Click(object sender, EventArgs e)
 {
     try
     {
         var token = PrivateAuthentication.GetAPITokenData(APIBaseAddress, DeveloperKey, txtEmail.Text, txtPassword.Text, Logger);
         if (token.APIToken == Guid.Empty.ToString())
         {
             throw new Exception("user or passsword are incorrect.");
         }
         txtToken.Text = token.APIToken;
         System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "token.txt", token.APIToken);
         auth   = new PrivateAuthentication(DeveloperKey, token.APIToken);
         client = new ApiClient(APIBaseAddress, auth, Logger);
         MessageBox.Show("Connected!");
     }
     catch (Exception ex)
     {
         MessageBox.Show("Not Connected!. reason: " + ex.ToString());
     }
 }