Added better error handling + added bulk handling of payable import BOD-152
This commit is contained in:
@@ -5,6 +5,7 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
using BodyshopPartner.Utils.Growls;
|
||||
using Interop.QBFC13;
|
||||
using Interop.QBXMLRP2;
|
||||
|
||||
@@ -16,20 +17,43 @@ namespace BodyshopPartner.Utils
|
||||
private static string ticket;
|
||||
private static RequestProcessor2 rp;
|
||||
private static string maxVersion;
|
||||
private static string companyFile = "";
|
||||
//public static string companyFile; //= @"C:\Users\pfic\Development\QB Testing\Testing\DANS2014.QBW";
|
||||
private static QBFileMode mode = QBFileMode.qbFileOpenDoNotCare;
|
||||
private static string appID = "ImEXBSP";
|
||||
private static string appName = "BodyshopPartner";
|
||||
private static GrowlNotification Growler;
|
||||
|
||||
public static void ConnectToQuickBooks()
|
||||
{
|
||||
try
|
||||
{
|
||||
logger.Debug("Attempting to connect to QuickBooks...");
|
||||
App.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
Growler.AddNotification(new Notification()
|
||||
{
|
||||
Id = new Random().Next(),
|
||||
Title = Properties.Resources.Msg_QbConnection_Title,
|
||||
Message = Properties.Resources.Msg_QbConnection_Msg
|
||||
});
|
||||
});
|
||||
|
||||
rp = new RequestProcessor2Class();
|
||||
rp.OpenConnection(appID, appName);
|
||||
ticket = rp.BeginSession(companyFile, mode);
|
||||
ticket = rp.BeginSession(Properties.Settings.Default.QuickBooksFilePath, mode);
|
||||
string[] versions = rp.get_QBXMLVersionsForSession(ticket);
|
||||
maxVersion = versions[versions.Length - 1];
|
||||
logger.Debug("Connected to QuickBooks. Ticket: " + ticket.ToString());
|
||||
|
||||
App.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
Growler.AddNotification(new Notification()
|
||||
{
|
||||
Id = new Random().Next(),
|
||||
Title = Properties.Resources.Msg_QbConnected_Title,
|
||||
Message = Properties.Resources.Msg_QbConnected_Msg
|
||||
});
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -47,6 +71,16 @@ namespace BodyshopPartner.Utils
|
||||
rp.EndSession(ticket);
|
||||
ticket = null;
|
||||
rp.CloseConnection();
|
||||
App.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
Growler.AddNotification(new Notification()
|
||||
{
|
||||
Id = new Random().Next(),
|
||||
Title = Properties.Resources.Msg_QbDisconnection_Title,
|
||||
Message = Properties.Resources.Msg_QbDisconnection_Msg
|
||||
});
|
||||
});
|
||||
logger.Debug("Disconnected from QuickBooks successfully.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -70,7 +104,22 @@ namespace BodyshopPartner.Utils
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static string ProcessQBXmlRequestUnManaged(string request)
|
||||
{
|
||||
try
|
||||
{
|
||||
//ConnectToQuickBooks();
|
||||
var ret = rp.ProcessRequest(ticket, request);
|
||||
//DisconnectFromQuickBooks();
|
||||
return ret;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.Error(e.Message);
|
||||
// DisconnectFromQuickBooks();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public static Models.QbXmlResponse ParseResponseXml(XDocument response)
|
||||
{
|
||||
XElement QueryResponse = response.Root.Descendants("QBXMLMsgsRs").Descendants().FirstOrDefault();
|
||||
@@ -87,6 +136,10 @@ namespace BodyshopPartner.Utils
|
||||
Response = response
|
||||
};
|
||||
}
|
||||
public static void SetGrowler(GrowlNotification g)
|
||||
{
|
||||
Growler = g;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user