public DepositAddResponse AddDeposit <T>(List <T> checks) { var converter = new QBXMLConverter(); string xml = converter.ConvertDeposit(checks); string depositResponseXml = ProcessRequest(xml); DepositAddResponse response = converter.ConvertDepositAddResponse(depositResponseXml); return(response); }
public DepositAddResponse ConvertDepositAddResponse(string xml) { var response = new DepositAddResponse(); var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); XmlNodeList responseNode = xmlDoc.GetElementsByTagName("DepositAddRs"); XmlNodeList depositNode = xmlDoc.GetElementsByTagName("DepositRet"); XmlNodeList depositLineNodes = xmlDoc.GetElementsByTagName("DepositLineRet"); response.Status = new QuickbooksStatus() { Code = int.Parse(responseNode[0].Attributes["statusCode"].Value), Severity = responseNode[0].Attributes["statusSeverity"].Value, Message = responseNode[0].Attributes["statusMessage"].Value }; response.TxnId = depositNode[0]["TxnID"]?.InnerText; response.TimeCreated = DateTime.Parse(depositNode[0]["TimeCreated"]?.InnerText); response.TimeModified = DateTime.Parse(depositNode[0]["TimeModified"]?.InnerText); response.EditSequence = long.Parse(depositNode[0]["EditSequence"]?.InnerText); response.TxnNumber = int.Parse(depositNode[0]["TxnNumber"]?.InnerText); response.TxnDate = DateTime.Parse(depositNode[0]["TxnDate"]?.InnerText); response.Memo = depositNode[0]["Memo"]?.InnerText; response.DepositTotal = decimal.Parse(depositNode[0]["DepositTotal"]?.InnerText); response.Lines = new List <DepositLine>(); response.DepositAccount = new QuickbooksAccount() { ListId = depositNode[0]["DepositToAccountRef"]["ListID"]?.InnerText, FullName = depositNode[0]["DepositToAccountRef"]["FullName"]?.InnerText }; foreach (XmlNode lineNode in depositLineNodes) { response.Lines.Add(new DepositLine() { TxnType = lineNode["TxnType"]?.InnerText, TxnLineId = lineNode["TxnLineID"]?.InnerText, Memo = lineNode["Memo"]?.InnerText, CheckNumber = lineNode["CheckNumber"]?.InnerText, Amount = decimal.Parse(lineNode["Amount"]?.InnerText), Account = new QuickbooksAccount() { ListId = lineNode["AccountRef"]["ListID"]?.InnerText, FullName = lineNode["AccountRef"]["FullName"]?.InnerText }, Entity = new QuickbooksEntity() { ListId = lineNode["EntityRef"]["ListID"]?.InnerText, FullName = lineNode["EntityRef"]["FullName"]?.InnerText }, Method = new PaymentMethod() { ListId = lineNode["PaymentMethodRef"]["ListID"]?.InnerText, FullName = lineNode["PaymentMethodRef"]["FullName"]?.InnerText } }); } return(response); }