/// <summary> /// Запись Данных в екземпляр запроса /// </summary> /// <param name="obj">Объект от которого отправляется запрос</param> /// <param name="sourceElement">xmlElement с входящими настройками запроса</param> /// <param name="request">екземпляр запроса</param> private void SetRequestData(Object obj, xmlElement sourceElement, Request request) { string RequestFormat = sourceElement.GetAttribute("RequestFormat"); string dataString = ""; if (sourceElement.GetAttribute("MethodQuery") != "") { dataString = obj.XQuery(sourceElement.GetAttribute("MethodQuery")); } if (string.IsNullOrEmpty(RequestFormat) || RequestFormat == "XML" || RequestFormat == "Without conversion") { //Устанавливаем данные для POST-запросов request.SetData(dataString); } else { if (!string.IsNullOrEmpty(dataString)) { XmlDocument doc = new XmlDocument(); doc.LoadXml(dataString); dataString = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, true); request.SetData(dataString.Replace(",null", "")); } } }
/// <summary> /// Создает екземпляры Запросов от контекста каждого объекта в Индексе /// </summary> /// <param name="templateElement">Метод с параметрами</param> private bool MakeRequestsFromObjIndex(xmlElement templateElement) { string XqueryForObjects = templateElement.GetAttribute("XqueryForObjects"); var objcs = Class.XQuery(XqueryForObjects); xmlDocument objs = new xmlDocument(objcs); if (objs.Root == null) { return(false); } foreach (var node in objs.Root.ChildElements) { Object sourceObject = GetSourceTargetObject(node); xmlDocument sourceXmlDocument = new xmlDocument(sourceObject.Root.XML); UpdateTemplateObject(sourceXmlDocument); if (sourceXmlDocument.Root.XQuery(templateElement.GetAttribute("NeedWork")) == "False") { continue; } // Формируем запрос к сторонней БД if (CreateAndFillRequest(sourceObject, sourceXmlDocument, templateElement)) { sourceObject.Save(sourceXmlDocument.Root.XML); } } return(true); }
/// <summary> /// Создает екземпляры Запросов от контекста каждого объекта в Индексе /// </summary> /// <param name="sourceElement">Метод с параметрами</param> void MakeRequestsFromObjIndex(xmlElement sourceElement) { string XqueryForObjects = sourceElement.GetAttribute("XqueryForObjects"); var objcs = Class.XQuery(XqueryForObjects); xmlDocument objs = new xmlDocument(objcs); if (objs.Root == null) { return; } foreach (var i in objs.Root.ChildElements) { Object CurrentObj = GetCurrentTargetObject(i); UpdateSourceObject(CurrentObj); if (CurrentObj.XQuery(sourceElement.GetAttribute("NeedWork")) == "False") { continue; } Request request = new Request(SourceObject, CurrentObj, sourceElement) { TargetClass = Class }; SetRequestData(CurrentObj, sourceElement, request); Session.ExecuteQuery(request); } }
/// <summary> /// Поиск файла, запись его в данные запроса и получение пути /// </summary> /// <param name="fileElement">XML елемент с входными данными</param> /// <returns>Путь к файлу</returns> private string GetFilePath(xmlElement fileElement) { File file; if (!IsFileLibrary(fileElement)) { file = GetFileFromObject(fileElement); } else { file = GetFileFromFileLibrary(fileElement); } if (file == null) { throw new Exception("АпиКоннектор: Не удалось найти файл!"); } string filePath = file.Load(); if (string.IsNullOrEmpty(filePath)) { filePath = file.Path; } fileBytes = TryGetFileBytes(file, filePath); return(filePath); }
public bool BackUpList(String location) { xmlWriter w = new xmlWriter(); xmlRegistry xmlReg = new xmlRegistry(); try { w.open(location); foreach (var strRegistrySection in BackUpKeys) { if (xmlRegistry.keyExists(strRegistrySection)) { xmlElement wroot = new xmlElement(xmlRegistry.XML_ROOT); wroot.write(w, 1, false, true); xmlReg.saveAsXml(w, false, strRegistrySection, ""); wroot.writeClosingTag(w, -1, false, true); } } } catch (Exception ex) { ErrorMessage = ex.Message; return(false); } finally { w.close(); } return(true); }
public MultipartFormDataСreator(Object sourceObject, xmlElement template, string boundary) { this.sourceObject = sourceObject; this.template = template; this.boundary = boundary; boundarybytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n"); }
/// <summary> /// Установка файлов в данные запроса /// </summary> /// <param name="fileList">Список файлов</param> /// <param name="fileKey">Ключ для параметров запроса</param> /// <param name="multipartFormDataContent">Поток для записи данных</param> private void SetFiles(string fileList, string fileKey, MultipartFormDataContent multipartFormDataContent) { if (sourceObject == null || sourceObject.IsDisposed) { throw new Exception("АпиКоннектор: Не удалось загрузить список файлов для отправки. Не установлен объект-контекст отправки"); } if (string.IsNullOrEmpty(fileList)) { return; } xmlDocument fileListDoc = new xmlDocument(fileList); foreach (xmlElement node in fileListDoc.Root.ChildElements) { try { fileElement = node; string filePath = GetFilePath(fileKey, multipartFormDataContent); } catch (Exception e) { Messages.showException(e); } } }
/// <summary> /// Установка данных запросов /// </summary> /// <param name="sourceXmlDocument">xmlDocument от которого отправляется запрос</param> /// <param name="templateElement">xmlElement с входящими настройками запроса</param> /// <param name="request">экземпляр запроса</param> private void SetRequestData(xmlDocument sourceXmlDocument, xmlElement templateElement, Request request) { string RequestFormat = templateElement.GetAttribute("RequestFormat"); string dataContent = ""; if (templateElement.GetAttribute("MethodQuery") != "") { dataContent = sourceXmlDocument.Root.XQuery(templateElement.GetAttribute("MethodQuery")); } if (request.ContentType == "multipart/form-data") { //Устанавливаем данные для multipart/form-data-запросов request.DataContent = request.SetMultipartFormData(); } if (string.IsNullOrEmpty(RequestFormat) || RequestFormat == "XML" || RequestFormat == "Without conversion") { //Устанавливаем данные для POST-запросов request.SetData(dataContent); } else { if (!string.IsNullOrEmpty(dataContent)) { XmlDocument doc = new XmlDocument(); doc.LoadXml(dataContent); dataContent = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, true); request.SetData(dataContent.Replace(",null", "")); } } }
private Object GetLibraryObject(xmlElement fileElement) { string fileLibraryObjectLink = fileElement.XQuery("xs:string(@link)"); if (string.IsNullOrEmpty(fileLibraryObjectLink)) { throw new Exception("АпиКоннектор: Ссылка на объект бибилиотеки файлов не установленна!"); } return(sourceObject.Class.GetClass(fileLibraryObjectLink.Substring(0, fileLibraryObjectLink.Length - 18)).GetObject(fileLibraryObjectLink.Substring(fileLibraryObjectLink.Length - 15))); }
internal Request(Object sourceObject, Object templateObject, xmlDocument sourceXmlDocument, xmlElement templateElem) { clientHendler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return(true); }; httpClient = new HttpClient(clientHendler); TemplateObject = templateObject; SourceObject = sourceObject; SourceXmlDocument = sourceXmlDocument; TemplateElement = templateElem; ContentType = TemplateElement.GetAttribute("ContentType"); MethodType = TemplateElement.GetAttribute("MethodDispatch"); SetHeaders(); }
private xmlElement createTaxElement(xmlElement SACElement) { xmlElement SACTax = SACElement.newElement("Tax"); xmlElement SACTaxFunction = SACTax.newElement("TaxFunction"); SACTaxFunction.setAttribute("stdValue", "7"); xmlElement SACTaxType = SACTax.newElement("TaxType"); SACTaxType.setAttribute("stdValue", "VAT"); xmlElement SACTaxCategory = SACTax.newElement("TaxCategory"); SACTaxCategory.setAttribute("stdValue", "S"); xmlElement SACTaxPercent = SACTax.newElement("TaxPercent"); SACTaxPercent.Text = string.Format("{0:0.0000}", vatRate); return(SACTax); }
/// <summary> /// Поиск файла типа (FileLibrary, ImageLibrary) /// </summary> /// <param name="fileElement">XML елемент с входными данными</param> /// <returns>Найденый файл</returns> private File GetFileFromFileLibrary(xmlElement fileElement) { Object fileLibraryObject = GetLibraryObject(fileElement); if (fileLibraryObject == null) { throw new Exception("АпиКоннектор: Не найден объект бибилиотеки файлов по заданому пути"); } string fileInfo = GetDataField(fileLibraryObject, fileElement).loadFile(fileLibraryObject.Root); if (string.IsNullOrEmpty(fileInfo)) { throw new Exception("АпиКоннектор: Не найден файл в объекте бибилиотеки файлов"); } return(new File(fileInfo, fileLibraryObject.Dir)); }
/// <summary> /// Запись Лога об успешном выполнении /// </summary> /// <param name="SourceObj">Объект ApiConnector`a c параметрами REST запроса</param> /// <param name="SourceElement">Елемент объекта ApiConnector`a c параметрами REST запроса</param> /// <param name="xDoc">xmlDocument ответа</param> /// <param name="RequestURL">URL Запроса</param> /// <param name="RequestData">Данные Запроса</param> internal static void Log(Object SourceObj, xmlElement SourceElement, xmlDocument xDoc, string RequestURL, string RequestData) { // Выполняем поиск объекта для ведения логов Class cls = SourceObj.Class.Domain.FindClass(SourceObj.Root.XQuery("string(LogClass/@link)")); string Xqury = SourceElement.GetAttribute("LogXqury"); string LogXml = xDoc.XQuery(Xqury); if (cls != null) { if (!String.IsNullOrEmpty(LogXml)) { CreateLog(cls, RequestURL, RequestData, LogXml); } else { CreateLog(cls, RequestURL, RequestData, xDoc); } } }
private DataField GetDataField(Object fileLibraryObject, xmlElement fileElement) { DataField fileDataField; if (fileElement.XQuery("xs:string(@cnm)") == "FileLibrary") { fileDataField = fileLibraryObject.GetDataField("file"); } else { fileDataField = fileLibraryObject.GetDataField("icon"); } if (fileDataField == null) { throw new Exception("АпиКоннектор: Не найдено поле file или icon в библиотеке файлов"); } return(fileDataField); }
/// <summary> /// Поиск файла типа (File) /// </summary> /// <param name="fileElement">XML елемент с входными данными</param> /// <returns>Найденый файл</returns> private File GetFileFromObject(xmlElement fileElement) { string fileName; string fileLink = fileElement.GetAttribute("link"); if (string.IsNullOrEmpty(fileLink)) { fileName = fileElement.GetAttribute("file"); } else { fileName = fileLink.Remove(0, fileLink.IndexOf("/") + 1); } if (string.IsNullOrEmpty(fileName)) { throw new Exception("АпиКоннектор: Не указанно имя файла для отправки"); } return(sourceObject.Dir.Files.getFile(fileName)); }
/// <summary> /// Отправка одиночного запроса /// </summary> /// <param name="obj">Объект от которого отправляется запрос</param> /// <param name="sourceElement">xmlElement с входящими настройками запроса</param> void MakeSimpleRequests(Object obj, xmlElement sourceElement) { if (obj.XQuery(sourceElement.GetAttribute("NeedWork")) == "False") { return; } if (!string.IsNullOrEmpty(SourceObject.GetAttrValue("XquryObj"))) { UpdateSourceObject(obj); } // Формируем запрос к сторонней БД Request request = new Request(SourceObject, obj, sourceElement) { TargetClass = Class }; SetRequestData(obj, sourceElement, request); // Выполняем запрос к сторонней БД Session.ExecuteQuery(request); }
internal Request(Object sourceObject, Object targetObject, xmlElement dataElem) { SourceObject = sourceObject; TargetObject = targetObject; SourceElement = dataElem; }
public bool ProcessSAC(ref DB db, ref baseDB.DataReader dr) { bool ret = false; try { string txnType = dr.field("TransactionType").strValue; if (txnType.Contains("SAL") || txnType.Contains("REF")) { baseDB.DB3.SQLRequestList requestList = new baseDB.DB3.SQLRequestList(); int sacRate = dr.field("Rate").intValue; if (sacRate != 0) { double SACTotalAmount = 0.0; int txnAmount = 0; bool SACRefund = false; if (txnType.Contains("SAL")) { txnType = txnType.Replace("SAL", "REF"); SACRefund = true; } else { txnType = txnType.Replace("REF", "SAL"); } double SACRate = sacRate / 100.0; string reference = "SAC" + dr.field("Reference").strValue; DateTime now = DateTime.Now; string addendum = dr.field("Addendum").strValue; if (string.IsNullOrEmpty(addendum)) { double amount = dr.field("Amount").intValue / 100.0; SACTotalAmount = (amount * (SACRate / 100.0)) + 0.00005; txnAmount = (int)(SACTotalAmount * 100.0); } else { //create addendum xmlElement invoice = new xmlElement(addendum); xmlElement SACAddendum = new xmlElement("<Invoice/>"); //modify InvoiceHeader xmlElement invHead = invoice.getElement("InvoiceHeader"); xmlElement SACInvoiceHeader = SACAddendum.newElement("InvoiceHeader"); SACInvoiceHeader.import(invHead.getElement("InvoiceType")); SACInvoiceHeader.import(invHead.getElement("InvoiceStatus")); SACInvoiceHeader.newElement("TaxTreatment").setAttribute("stdValue", "NIL"); SACInvoiceHeader.import(invHead.getElement("InvoiceTreatment")); SACInvoiceHeader.newElement("InvoiceNumber").Text = "SAC" + invHead.getElement("InvoiceNumber").Text; SACInvoiceHeader.newElement("InvoiceDate").Text = string.Format("{0:s}", now); SACInvoiceHeader.newElement("TaxPointDate").Text = string.Format("{0:s}", now); SACInvoiceHeader.import(invHead.getElement("Currency")); System.Collections.ArrayList parties = invHead.getElements("Party"); foreach (xmlElement party in parties) { SACInvoiceHeader.import(party); } SACInvoiceHeader.import(invHead.getElement("PONum")); //InvoiceHeader refs if (SACRefund) { //create "IV" ref containing original invoice number xmlElement SACInvoiceHeaderRef = SACInvoiceHeader.newElement("Ref"); SACInvoiceHeaderRef.setAttribute("stdValue", "IV"); SACInvoiceHeaderRef.Text = invHead.getElement("InvoiceNumber").Text; } System.Collections.ArrayList invRefs = invHead.getElements("Ref"); foreach (xmlElement invRef in invRefs) { if (invRef.getAttribute("stdValue") != "IV") { SACInvoiceHeader.import(invRef); } } SACInvoiceHeader.import(invHead.getElement("Date")); //create new InvoiceDetails for each line System.Collections.ArrayList invoiceDetails = invoice.getElements("InvoiceDetails"); foreach (xmlElement invDet in invoiceDetails) { xmlElement SACInvoiceDetails = SACAddendum.newElement("InvoiceDetails"); xmlElement SACBaseItemDetail = SACInvoiceDetails.newElement("BaseItemDetail"); xmlElement baseItemDetail = invDet.getElement("BaseItemDetail"); SACBaseItemDetail.import(baseItemDetail.getElement("LineItemNum")); //create Commodity code PartNumDetail xmlElement SACPartNumDetailForCC = SACBaseItemDetail.newElement("PartNumDetail"); SACPartNumDetailForCC.setAttribute("stdValue", "CC"); SACPartNumDetailForCC.newElement("PartNum").Text = commodityCode; SACPartNumDetailForCC.newElement("PartDesc").Text = commodityDescription; System.Collections.ArrayList partNumDetails = baseItemDetail.getElements("PartNumDetail"); foreach (xmlElement partNumDet in partNumDetails) { if (partNumDet.getAttribute("stdValue") == "VP") //vendor(supplier)'s product code & description { //modify supplier's product description (prefix with "SAC") xmlElement SACPartNumDetailForVP = SACBaseItemDetail.newElement("PartNumDetail"); SACPartNumDetailForVP.setAttribute("stdValue", "VP"); SACPartNumDetailForVP.newElement("PartNum").Text = partNumDet.getElement("PartNum").Text; SACPartNumDetailForVP.newElement("PartDesc").Text = "SAC" + partNumDet.getElement("PartDesc").Text; } } //Quantity xmlElement SACQuantity = SACBaseItemDetail.newElement("Quantity"); xmlElement SACQty = SACQuantity.newElement("Qty"); SACQty.Text = "1.0000"; xmlElement SACUnitOfMeasure = SACQuantity.newElement("UnitOfMeasure"); SACUnitOfMeasure.setAttribute("stdValue", unitOfMeasure); //calculate the SAC amount double lineTotal = double.Parse(invDet.getElement("LineItemSubtotal").Text); double SACAmount = (lineTotal * (SACRate / 100.0)) + 0.00005; //set unit price & line item sub total = SAC amount SACInvoiceDetails.newElement("UnitPrice").Text = string.Format("{0:0.0000}", SACAmount); SACInvoiceDetails.newElement("LineItemSubtotal").Text = string.Format("{0:0.00}", SACAmount); SACTotalAmount += SACAmount; //Tax createTaxElement(SACInvoiceDetails); } //InvoiceSummary xmlElement SACInvoiceSummary = SACAddendum.newElement("InvoiceSummary"); //create one TaxSummary using standard VAT rate xmlElement SACTaxSummary = SACInvoiceSummary.newElement("TaxSummary"); xmlElement SACTax = createTaxElement(SACTaxSummary); //create TaxableAmount and TaxAmount double taxRate = double.Parse(SACTax.getElement("TaxPercent").Text); SACTax.newElement("TaxableAmount").Text = string.Format("{0:0.00}", SACTotalAmount); //calculate the TaxAmount double taxAmount = (SACTotalAmount * (taxRate / 100.0)) + 0.00005; SACTax.newElement("TaxAmount").Text = string.Format("{0:0.00}", taxAmount); //InvoiceTotals txnAmount = (int)((SACTotalAmount + 0.005) * 100.0) + (int)((taxAmount + 0.005) * 100.0); double SACGrossAmount = (double)txnAmount / 100.0; if (txnAmount != 0) { xmlElement SACInvoiceTotals = SACInvoiceSummary.newElement("InvoiceTotals"); SACInvoiceTotals.newElement("NetValue").Text = string.Format("{0:0.00}", SACTotalAmount); SACInvoiceTotals.newElement("TaxValue").Text = string.Format("{0:0.00}", taxAmount); SACInvoiceTotals.newElement("GrossValue").Text = string.Format("{0:0.00}", SACGrossAmount); //ActualPayment xmlElement SACActualPayment = SACInvoiceSummary.newElement("ActualPayment"); xmlElement SACPaymentAmount = SACActualPayment.newElement("PaymentAmount"); SACPaymentAmount.newElement("LocalCurrencyAmt").Text = string.Format("{0:0.00}", SACGrossAmount); SACActualPayment.newElement("PaymentMean").setAttribute("stdValue", "ZZZ"); SACActualPayment.newElement("PaymentDate").Text = string.Format("{0:s}", now); //CardInfo SACActualPayment.import(invoice.getElement("InvoiceSummary").getElement("ActualPayment").getElement("CardInfo")); addendum = SACAddendum.rootXml; } } if (txnAmount != 0) { //create SAC record baseDB.DB3.SQLRequest sqlSAC = new baseDB.DB3.SQLRequest(); sqlSAC.operation = baseDB.DB3.SQLRequest.Operation.Insert; sqlSAC.fields.Add("SupplierID").value = dr.field("SupplierID").strValue; sqlSAC.fields.Add("Reference").value = reference; sqlSAC.fields.Add("Status").value = dr.field("Status").value; sqlSAC.fields.Add("Source").value = "ITSSAC"; sqlSAC.fields.Add("Acquirer").value = dr.field("Acquirer").strValue; //don't add SettlementID as this needs to be null sqlSAC.fields.Add("TerminalID").value = dr.field("TerminalID").intValue; sqlSAC.fields.Add("TransactionType").value = txnType; sqlSAC.fields.Add("DateTime").value = now; sqlSAC.fields.Add("SchemeName").value = dr.field("SchemeName").strValue; sqlSAC.fields.Add("PAN").value = dr.field("PAN").strValue; sqlSAC.fields.Add("IssueNumber").value = dr.field("IssueNumber").strValue; sqlSAC.fields.Add("StartDate").value = dr.field("StartDate").strValue; sqlSAC.fields.Add("ExpiryDate").value = dr.field("ExpiryDate").strValue; sqlSAC.fields.Add("CustomerPresent").value = dr.field("CustomerPresent").boolValue; sqlSAC.fields.Add("InputMethod").value = dr.field("InputMethod").strValue; sqlSAC.fields.Add("CurrencyCode").value = dr.field("CurrencyCode").strValue; sqlSAC.fields.Add("CountryCode").value = dr.field("CountryCode").strValue; sqlSAC.fields.Add("Amount").value = txnAmount; sqlSAC.fields.Add("Cashback").value = 0; sqlSAC.fields.Add("AuthMethod").value = "OFFLINE"; sqlSAC.fields.Add("AuthCode").value = ""; sqlSAC.fields.Add("AddendumType").value = dr.field("AddendumType").strValue; sqlSAC.fields.Add("Addendum").value = addendum; sqlSAC.fields.Add("ICCData").value = ""; sqlSAC.fields.Add("UserReference").value = ""; sqlSAC.fields.Add("ReceiptNumber").value = dr.field("ReceiptNumber").value; sqlSAC.fields.Add("Processed").value = now; sqlSAC.fields.Add("ESFeed").value = dr.field("ESFeed").strValue; sqlSAC.fields.Add("ContractNumber").value = dr.field("ContractNumber").strValue; sqlSAC.fields.Add("CVV").value = ""; sqlSAC.fields.Add("TerminalType").value = dr.field("TerminalType").strValue; sqlSAC.fields.Add("XMLBIN").value = dr.field("XMLBIN").strValue; sqlSAC.fields.Add("AddendumAcquirer").value = dr.field("AddendumAcquirer").strValue; sqlSAC.fields.Add("AddendumSettlementID").value = ""; sqlSAC.fields.Add("SOCRefNumber").value = dr.field("SOCRefNumber").value; sqlSAC.fields.Add("UserSource").value = ""; sqlSAC.fields.Add("TicketNumber").value = dr.field("TicketNumber").strValue; sqlSAC.fields.Add("EncryptedPAN").value = dr.field("EncryptedPAN").strValue; sqlSAC.fields.Add("AliasName").value = dr.field("AliasName").strValue; sqlSAC.fields.Add("POSEntryMode").value = ""; sqlSAC.fields.Add("UserName").value = ""; sqlSAC.fields.Add("OriginalReference").value = ""; sqlSAC.fields.Add("SchemeReferenceData").value = ""; sqlSAC.fields.Add("AcquirerReferenceData").value = ""; sqlSAC.fields.Add("NIUtilityType").value = ""; sqlSAC.fields.Add("NINarration").value = ""; sqlSAC.fields.Add("SACApplied").value = 1; sqlSAC.table = "tblTransactions"; sqlSAC.transactAcceptCriteria = baseDB.DB3.TransactAcceptCriteria.RowsAffectedIs1; requestList.AddRequest(sqlSAC); } } //update tblTransactions set SACApplied = 'True' and SACClaimed = null where ID = ID of SAC eligible txn baseDB.DB3.SQLRequest sqlTxn = new baseDB.DB3.SQLRequest(); sqlTxn.operation = baseDB.DB3.SQLRequest.Operation.Update; sqlTxn.fields.Add("SACApplied").value = 1; sqlTxn.fields.Add("SACClaimed").value = null; sqlTxn.table = "tblTransactions"; sqlTxn.whereClause.basic.Add("ID", baseDB.DB3.Compare.Equal, dr.field("ID").intValue); sqlTxn.transactAcceptCriteria = baseDB.DB3.TransactAcceptCriteria.RowsAffectedIs1; requestList.AddRequest(sqlTxn); requestList.Transact = true; //execute within a transaction baseDB.DB3.SQLResponseList responseList = new baseDB.DB3.SQLResponseList(); responseList = db.ExecuteBatch(requestList); if (responseList.Success == true) { ret = true; } else { //log an error Logger.Log("ProcessSAC: DB ExecuteBatch failed. " + responseList.Exception); } } else { //log unknown txn type Logger.Log("ProcessSAC: Unrecognized transaction type: " + txnType + " in txn ID: " + dr.field("ID").intValue); } } catch (Exception ex) { if (ex.InnerException != null && ex.InnerException.GetType() == typeof(Win32Exception)) { Win32Exception wex = (Win32Exception)ex.InnerException; Logger.Log(string.Format("ProcessSAC: Exception, error(0x{0:X})", wex.ErrorCode)); } else { Logger.Log("ProcessSAC: " + ex.ToString()); } } if (!ret) { //update tblTransactions set SACClaimed = "ERROR" where ID = ID of SAC eligible txn baseDB.DB3.SQLRequest sqlTxn = new baseDB.DB3.SQLRequest(); sqlTxn.operation = baseDB.DB3.SQLRequest.Operation.Update; sqlTxn.fields.Add("SACClaimed").value = "ERROR"; sqlTxn.table = "tblTransactions"; sqlTxn.whereClause.basic.Add("ID", baseDB.DB3.Compare.Equal, dr.field("ID").intValue); sqlTxn.transactAcceptCriteria = baseDB.DB3.TransactAcceptCriteria.RowsAffectedIs1; if (db.ExecuteDataWriter(sqlTxn).RowsAffected != 1) { Logger.Log("ProcessSAC: Failed to set SACClaimed = ERROR for txn ID: " + dr.field("ID").intValue); } } return(ret); }
private bool IsFileLibrary(xmlElement fileElement) { return(fileElement.XQuery("xs:string(@cnm)") == "FileLibrary" || fileElement.XQuery("xs:string(@cnm)") == "ImageLibrary"); }
private string GetParamValue(xmlElement textParam) { return(sourceObject.XQuery(textParam.GetAttribute("ValueXQ"))); }
public MultipartFormDataСreator(Object sourceObject, xmlElement template) { this.sourceObject = sourceObject; this.template = template; }
/// <summary> /// Создание запроса и заполение его данными /// </summary> /// <param name="sourceObject">Объект от которого отправляется запрос</param> /// <param name="sourceXmlDocument">xmlDocument от которого отправляется запрос</param> /// <param name="templateElement">xmlElement с входящими настройками запроса</param> /// <returns></returns> private bool CreateAndFillRequest(Object sourceObject, xmlDocument sourceXmlDocument, xmlElement templateElement) { Request request = new Request(sourceObject, TemplateObject, sourceXmlDocument, templateElement) { TargetClass = Class }; SetRequestData(sourceXmlDocument, templateElement, request); // Выполняем запрос к сторонней БД return(Session.ExecuteQuery(request)); }
private string GetParamKey(xmlElement textParam) { return(textParam.GetAttribute("Key")); }
/// <summary> /// /// </summary> /// <param name="sourceObject">Объект от которого отправляется запрос</param> /// <param name="sourceXmlDocument">xmlDocument от которого отправляется запрос</param> /// <param name="templateElement">xmlElement с входящими настройками запроса</param> /// <returns></returns> private bool MakeSimpleRequests(Object sourceObject, xmlDocument sourceXmlDocument, xmlElement templateElement) { if (sourceXmlDocument.Root.XQuery(templateElement.GetAttribute("NeedWork")) == "False") { Messages.showMessage("АпиКоннектор: NeedWork = false. XQ - " + templateElement.GetAttribute("NeedWork")); return(false); } Messages.showMessage("АпиКоннектор: Выполнение запроса NeedWork. XQ - " + templateElement.GetAttribute("NeedWork")); if (!string.IsNullOrEmpty(TemplateObject.GetAttrValue("XquryObj"))) { UpdateTemplateObject(sourceXmlDocument); } // Формируем запрос к сторонней БД return(CreateAndFillRequest(sourceObject, sourceXmlDocument, templateElement)); }