diff --git a/source/Plugins/AyaNova.Plugin.QBOI/AyaNova.PlugIn.QBOI.csproj b/source/Plugins/AyaNova.Plugin.QBOI/AyaNova.PlugIn.QBOI.csproj
index d3bfbec..60afa4b 100644
--- a/source/Plugins/AyaNova.Plugin.QBOI/AyaNova.PlugIn.QBOI.csproj
+++ b/source/Plugins/AyaNova.Plugin.QBOI/AyaNova.PlugIn.QBOI.csproj
@@ -212,6 +212,12 @@
Form
+
+ Form
+
+
+ GetToken.cs
+
Form
@@ -357,6 +363,9 @@
AyaMapDetails.cs
Designer
+
+ GetToken.cs
+
SetAYImportPartVendor.cs
Designer
diff --git a/source/Plugins/AyaNova.Plugin.QBOI/Util.cs b/source/Plugins/AyaNova.Plugin.QBOI/Util.cs
index dff5edd..95d7f1c 100644
--- a/source/Plugins/AyaNova.Plugin.QBOI/Util.cs
+++ b/source/Plugins/AyaNova.Plugin.QBOI/Util.cs
@@ -367,13 +367,24 @@ namespace AyaNova.PlugIn.QBOI
//case 3671
//Modify the below code to instead work with a static tokens obtained from qBridge (just for initial testing)
//then test that all ops work witha fresh company connection
- static public void StartAuthorization()
+ static public bool StartAuthorization()
{
//used to tie this session to the auth key on our server for fetching later
QBOI2_SESSION_TOKEN = RandomInt64().ToString();
//shell out to browser for user to login to QB
System.Diagnostics.Process.Start("https://qboauth.ayanova.com/start/" + QBOI2_SESSION_TOKEN);
+
+ //Open dialog that polls for token repeatedly, there is a delay built into the server
+ //so no need to delay here, just keep attempting to fetch over and over or until cancel
+ GetToken gt = new GetToken(QBOI2_SESSION_TOKEN);
+ DialogResult tokenResult=gt.ShowDialog();
+ if (tokenResult == DialogResult.Cancel)
+ {
+ return false;
+ }
+
+
//LOOP over and over every 5 seconds checking repeatedly for the state token to get off the server or until user selects quit in some dialog that needs to be shown here
@@ -431,7 +442,9 @@ namespace AyaNova.PlugIn.QBOI
//' For data updates, create DataService:
Intuit.Ipp.DataService.DataService loDataService = new Intuit.Ipp.DataService.DataService(SC);
+
_AuthenticationCompleted = true;
+ return true;
}
@@ -522,14 +535,14 @@ namespace AyaNova.PlugIn.QBOI
if (!_AuthenticationCompleted)
{
IntegrationLog.Log(QBID, "PFC: Authenticating...");
- StartAuthorization();//case 3671
+ if (!StartAuthorization()) {
+ //user cancelled or some other issue, close qboi
+ IntegrationLog.Log(QBID, "PFC: QuickBooks connection not authorized");
+ return pfstat.Cancel;
+ }
}
- while (!_AuthenticationCompleted)
- {
- //wait for authorization,
- //TODO: add timeout here
- }
+
IntegrationLog.Log(QBID, "PFC: Authentication completed, validating company data");