public bool HandleMessage(PluginsInterfaces.Message message, IMessageReplyHandler replyHandler) { try { if (_connectionPoint == "1C") { BPMExchangePortTypeClient ws = connectionServiceUT(_password, _login); var receiptMethod = ws.SendMessageAsync(createOutgoingMessageUT(message)).ConfigureAwait(false).GetAwaiter(); receiptMethod.OnCompleted(() => { try { var replyMessage = createReplyMessageUT(receiptMethod.GetResult(), message); replyHandler.HandleReplyMessage(replyMessage); _logger.Debug("Ответ сформирован :" + Encoding.UTF8.GetString(replyMessage.Body)); ws.Close(); } catch (Exception ex) { replyHandler.HandleReplyMessage(createAndSendCatchMessage(ex.Message, message)); _logger.Error(ex.Message); ws.Abort(); } }); } else if (_connectionPoint == "Axapta") { IntegrationaxSoapClient ws = connectionAxapteService(); var receiptMethod = ws.sendMessageAsync(createOutgoingMessageAxapta(message)).ConfigureAwait(false).GetAwaiter(); receiptMethod.OnCompleted(() => { try { var replyMessage = createReplyMessageAxapta(receiptMethod.GetResult(), message); replyHandler.HandleReplyMessage(replyMessage); _logger.Debug("Ответ сформирован :" + Encoding.UTF8.GetString(replyMessage.Body)); ws.Close(); } catch (Exception ex) { replyHandler.HandleReplyMessage(createAndSendCatchMessage(ex.Message, message)); _logger.Error(ex.Message); ws.Abort(); } }); } } catch (Exception ex) { _logger.Error("Ошибка HandleMessage " + ex.Message); } return(true); }
public IntegrationaxSoapClient connectionAxapteService() { IntegrationaxSoapClient ws = null; try { EndpointAddress ep = new EndpointAddress(new Uri(_wsdlAddress)); BasicHttpBinding binding = new BasicHttpBinding(); ws = new IntegrationaxSoapClient(binding, ep); ws.Open(); } catch (Exception ex) { ws.Close(); _logger.Error("Ошибка connectionAxaptService " + ex.Message); } return(ws); }