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 BPMExchangePortTypeClient connectionServiceUT(string password, string login) { BPMExchangePortTypeClient ws = null; try { EndpointAddress ep = new EndpointAddress(new Uri(_wsdlAddress)); BasicHttpBinding binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; ws = new BPMExchangePortTypeClient(binding, ep); ws.ClientCredentials.UserName.UserName = _login; ws.ClientCredentials.UserName.Password = _password; ws.Open(); } catch (Exception ex) { ws.Close(); _logger.Error(ex.Message); } return(ws); }