Added better error handling + added bulk handling of payable import BOD-152

This commit is contained in:
Patrick Fic
2020-06-04 09:52:17 -07:00
parent fe4cb24742
commit b9573b38f0
11 changed files with 202 additions and 27 deletions

View File

@@ -46,28 +46,48 @@ namespace BodyshopPartner.Utils
List<QbRequestItem> AllRequests = ParseRequest(req);
List<QbResponseItem> HttpResponse = new List<QbResponseItem>();
// string requestXMLstring = ParseBodyToString(req);
hlog("Connecting to QuickBooks. This may take a moment...");
QuickBooksInterop.ConnectToQuickBooks();
foreach (QbRequestItem request in AllRequests)
{
XDocument response = XDocument.Parse(QuickBooksInterop.ProcessQBXmlRequest(request.QbXML));
QbXmlResponse ResponseStatus = QuickBooksInterop.ParseResponseXml(response);
logger.Trace(response.ToString());
logger.Debug(ResponseStatus.ToString());
hlog(ResponseStatus.ToString());
QbResponseItem r = new QbResponseItem()
try
{
Id = request.Id,
Success = ResponseStatus.StatusCode == "0" || request.OkStatusCodes.Contains(ResponseStatus.StatusCode),
ErrorMessage = ResponseStatus.StatusMessage
};
hlog("Processing QuickBooks request. ImEX Online Record ID:" + request.Id);
XDocument response = XDocument.Parse(QuickBooksInterop.ProcessQBXmlRequestUnManaged(request.QbXML));
QbXmlResponse ResponseStatus = QuickBooksInterop.ParseResponseXml(response);
logger.Trace(response.ToString());
logger.Debug(ResponseStatus.ToString());
hlog(ResponseStatus.ToString());
QbResponseItem r = new QbResponseItem()
{
Id = request.Id,
Success = ResponseStatus.StatusCode == "0" || request.OkStatusCodes.Contains(ResponseStatus.StatusCode),
ErrorMessage = ResponseStatus.StatusMessage
};
HttpResponse.Add(r);
}
catch (Exception Ex)
{
//Shouldn't really get here unless something is malformed.
logger.Error(Ex, "Error encountered when processing QbXML Request.\n {0}", request.QbXML);
QbResponseItem r = new QbResponseItem()
{
Id = request.Id,
Success = false,
ErrorMessage = Ex.Message
};
HttpResponse.Add(r);
}
HttpResponse.Add(r);
}
QuickBooksInterop.DisconnectFromQuickBooks();
hlog("Completed QuickBooks request.");
hlog("Completed QuickBooks requests.");
res.WithCORS().AsText(JsonConvert.SerializeObject(HttpResponse));
}