public bool ProcessMessage(IPullRoute route, Message request, out Message response) { response = null; if (request != null && request.Header != null)// && //MessageRegistry.RHISPIX_RequestMessageType.EqualsTo(request.Header.Type)) // do not need validation so strict { string id = request.Header.ID.ToString(); _context.Log.Write(string.Format("Begin processing requesting message. Request Message ID: {0}", id)); SOAPClientControlerProcessStatus s = _controler.ProcessRequestingMessage(request, out response); _context.Log.Write( string.Format("End processing requesting message. Request Message ID: {0}. Response Message ID: {1}. Result: {2}", id, (response != null && response.Header != null) ? response.Header.ID.ToString() : "(null)", s)); _context.Log.Write(""); //string Keywords = GetKeywords(request.Body.ToString()); //SendLogMessage(string.Format("Send SOAP message {0}", s),request.Body.ToString(),Keywords); return(s == SOAPClientControlerProcessStatus.Success); } else { _context.Log.Write(LogType.Error, "Received requsting message failed or receive a unwanted requsting message."); return(false); } }
public bool ProcessMessage(IPullRoute route, Message request, out Message response) { response = new Message(); try { if (request != null && request.Header != null) { string desc = string.Format("processing message type: {0} id: {1} in thread id: {2}", request.Header.Type, request.Header.ID.ToString(), System.Threading.Thread.CurrentThread.ManagedThreadId); Program.Log.Write(string.Format("Responser begin {0}", desc)); bool res = _controler.DispatchResponserMessage(request, out response); Program.Log.Write(string.Format("Responser finish {0}. Result: {1}, {2}", desc, res, (response != null && response.Header != null) ? response.Header.Type + ":" + response.Header.ID.ToString() : null)); Program.Log.Write(""); return(res); } else { Program.Log.Write(LogType.Error, "Received requsting message failed or receive a unwanted requsting message."); return(false); } } catch (Exception err) { Program.Log.Write(err); return(false); } }
private bool requester_OnMessageRequest(IPullRoute route, Message request, out Message response) { DumpHelper.DumpRequesterSendingMessage(_log, request); if (OnPreProcessing != null) { if (!OnPreProcessing(ref request)) { _log.Write(LogType.Warning, string.Format("The pre-processing handler rejected the requesting message (ID: {0}) from going out.", (request != null) ? request.Header.ID.ToString() : "(null)")); response = null; return(false); } } response = null; bool res = false; if (route != null) { PullSenderBase s = GetPullSender(route); if (s != null) { res = s.SendMessage(request, out response); } } else { foreach (PullSenderBase s in _channels) { res = s.SendMessage(request, out response); if (res) { break; } } } if (!res) { return(res); } DumpHelper.DumpRequesterReceivingMessage(_log, response); if (OnPostProcessing != null) { if (!OnPostProcessing(request, ref response)) { _log.Write(LogType.Warning, string.Format("The post-processing handler rejected the responsing message (ID: {0}) from coming in.", (response != null) ? response.Header.ID.ToString() : "(null)")); return(false); } } return(true); }
public PullChannelConfig FindChannel(IPullRoute route) { if (route == null) { return(null); } foreach (PullChannelConfig chn in _channels) { if (chn.ID == route.ID) { return(chn); } } return(null); }
private PullSenderBase GetPullSender(IPullRoute route) { if (route == null || _channels.Count < 1) { return(null); } foreach (PullSenderBase s in _channels) { if (s.Channel.ID == route.ID) { return(s); } } return(null); }
public bool ProcessMessage(IPullRoute route, Message request, out Message response) { response = new Message(); try { if (request != null && request.Header != null) { string req; string rsp; switch (_context.ConfigMgr.Config.MessageProcessingType) { case MessageProcessType.HL7v2Text: { req = HL7MessageHelper.GetHL7V2PayLoad(request); if (_controler.SendMLLPQuery(req, out rsp)) { response.Header.ID = Guid.NewGuid(); response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType; HL7MessageHelper.SetHL7V2PayLoad(response, rsp); return(true); } else { _context.Log.Write(LogType.Error, "Processing requsting HL7 message failed or sending HL7 message to remote HL7 listener failed."); return(false); } } case MessageProcessType.HL7v2XML: { req = request.Body; if (_controler.SendHL7v2XMLQuery(req, out rsp)) { response.Header.ID = Guid.NewGuid(); response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType; response.Body = rsp; return(true); } else { _context.Log.Write(LogType.Error, "Processing requsting XML message (transform XML to/from HL7v2 text) failed or sending HL7 message to remote HL7 listener failed."); return(false); } } default: case MessageProcessType.OtherXML: { if (_controler.SendOtherXMLQuery(request, out response)) { response.Header.ID = Guid.NewGuid(); response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType; return(true); } else { _context.Log.Write(LogType.Error, "Processing requsting XML message (transform XML to/from transport schema) failed or sending HL7 message to remote HL7 listener failed."); return(false); } } } ////if (MessageRegistry.HL7V2_QueryRequestMessageType.EqualsTo(request.Header.Type)) //if(!_context.Context.ConfigMgr.Config.EnableHL7XMLTransform) //{ // req = HL7MessageHelper.GetHL7V2PayLoad(request); // if (_controler.SendQuery(req, out rsp)) // { // response.Header.ID = Guid.NewGuid(); // //response.Header.Type = MessageRegistry.HL7V2_QueryResultMessageType; // response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType; // HL7MessageHelper.SetHL7V2PayLoad(response, rsp); // return true; // } // else // { // _context.Log.Write(LogType.Error, "Processing requsting HL7 message failed or sending HL7 message to remote HL7 listener failed."); // return false; // } //} ////else if (MessageRegistry.HL7V2XML_QueryRequestMessageType.EqualsTo(request.Header.Type)) //else //{ // req = request.Body; // if (_controler.SendXMLQuery(req, out rsp)) // { // response.Header.ID = Guid.NewGuid(); // //response.Header.Type = MessageRegistry.HL7V2XML_QueryResultMessageType; // response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType; // response.Body = rsp; // return true; // } // else // { // _context.Log.Write(LogType.Error, "Processing requsting XML message failed or sending HL7 message to remote HL7 listener failed."); // return false; // } //} ////else ////{ //// _context.Log.Write(LogType.Error, "Received a unwanted publishing message."); //// return false; ////} } else { _context.Log.Write(LogType.Error, "Received requsting message failed."); return(false); } } catch (Exception e) { _context.Log.Write(e); return(false); } }