private static void GetEndPoints(string itineraryName, string resolver, string route, List<ItineraryEndpoint> endPoints, XmlNodeList itineraries) { foreach (XmlNode itinerary in itineraries) { if (itinerary.Attributes["identifier"].Value == resolver) { XmlNodeList resolverGroups = itinerary.ChildNodes; foreach (XmlNode resolverGroup in resolverGroups) { if (resolverGroup.Attributes["routingType"].Value == "Messaging") { if(!string.IsNullOrEmpty(route)) { if (resolverGroup.Attributes["route"].Value.ToLower() == route.ToLower()) { XmlNodeList endPointNodes = resolverGroup.ChildNodes; foreach (XmlNode endPoint in endPointNodes) { ItineraryEndpoint itineraryEndPoint = new ItineraryEndpoint(); itineraryEndPoint.Itinerary = itineraryName; itineraryEndPoint.Location = endPoint.Attributes["location"].Value; itineraryEndPoint.Protocol = endPoint.Attributes["protocol"].Value; itineraryEndPoint.Resolver = resolver; endPoints.Add(itineraryEndPoint); } } } else { XmlNodeList endPointNodes = resolverGroup.ChildNodes; foreach (XmlNode endPoint in endPointNodes) { ItineraryEndpoint itineraryEndPoint = new ItineraryEndpoint(); itineraryEndPoint.Itinerary = itineraryName; itineraryEndPoint.Location = endPoint.Attributes["location"].Value; itineraryEndPoint.Protocol = endPoint.Attributes["protocol"].Value; itineraryEndPoint.Resolver = resolver; endPoints.Add(itineraryEndPoint); } } } } } } }
private void AssignEndPointAndReturnToMessagebox(ItineraryEndpoint endPoint, IBaseMessage pInMsg, IPipelineContext pContext, string documentType, Stream msgData, string itineraryType, string originalFileName, string interChangeId, string configurationState) { string endPointPath = endPoint.Location; string adapterType = endPoint.Protocol; string actionType = GetReceivedDocumentTypeName(pInMsg); IBaseMessage returnMsg = CreateNewReturnMessage(pInMsg, pContext, msgData); string txNumber = pInMsg.Context.Read("TxNum", "http://CoJ.FX/ContextProperties").ToString(); string btsId = System.DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + Math.Abs(Guid.NewGuid().GetHashCode()).ToString(); string activityId = System.Guid.NewGuid().ToString(); returnMsg.Context.Write("TrackingId", "http://CoJ.FX/ContextProperties", btsId); returnMsg.Context.Promote("TrackingId", "http://CoJ.FX/ContextProperties", btsId); returnMsg.Context.Write("InterchangeId", "http://CoJ.FX/ContextProperties", interChangeId); returnMsg.Context.Promote("InterchangeId", "http://CoJ.FX/ContextProperties", interChangeId); returnMsg.Context.Write("AdapterType", "http://CoJ.FX/ContextProperties", adapterType); returnMsg.Context.Promote("AdapterType", "http://CoJ.FX/ContextProperties", adapterType); if (!string.IsNullOrEmpty(itineraryType)) { returnMsg.Context.Write("Resolver", "http://coj.esb/schemas/itinerary/properties", itineraryType); returnMsg.Context.Promote("Resolver", "http://coj.esb/schemas/itinerary/properties", itineraryType); } else { returnMsg.Context.Write("Resolver", "http://coj.esb/schemas/itinerary/properties", endPoint.Resolver); returnMsg.Context.Promote("Resolver", "http://coj.esb/schemas/itinerary/properties", endPoint.Resolver); } returnMsg.Context.Write("EndpointProtocol", "http://coj.esb/schemas/itinerary/properties", endPoint.Protocol); returnMsg.Context.Promote("EndpointProtocol", "http://coj.esb/schemas/itinerary/properties", endPoint.Protocol); returnMsg.Context.Write("DocumentType", "http://CoJ.FX/ContextProperties", documentType); returnMsg.Context.Promote("DocumentType", "http://CoJ.FX/ContextProperties", documentType); returnMsg.Context.Write("NodeName", "http://CoJ.FX/ContextProperties", documentType); returnMsg.Context.Promote("NodeName", "http://CoJ.FX/ContextProperties", documentType); returnMsg.Context.Write("TxNum", "http://CoJ.FX/ContextProperties", txNumber); returnMsg.Context.Promote("TxNum", "http://CoJ.FX/ContextProperties", txNumber); returnMsg.Context.Write("Miscellaneous", "http://CoJ.FX/ContextProperties", "1"); returnMsg.Context.Promote("Miscellaneous", "http://CoJ.FX/ContextProperties", "1"); if (!string.IsNullOrEmpty(configurationState)) { returnMsg.Context.Write("Route", "http://CoJ.FX/ContextProperties", configurationState); returnMsg.Context.Promote("Route", "http://CoJ.FX/ContextProperties", configurationState); } if (!string.IsNullOrEmpty(originalFileName)) { returnMsg.Context.Write("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties", originalFileName); returnMsg.Context.Write("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/ftp-properties", originalFileName); returnMsg.Context.Write("Label", "http://schemas.microsoft.com/BizTalk/2003/msmq-properties", originalFileName); returnMsg.Context.Promote("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties", originalFileName); returnMsg.Context.Promote("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/ftp-properties", originalFileName); returnMsg.Context.Promote("Label", "http://schemas.microsoft.com/BizTalk/2003/msmq-properties", originalFileName); } returnMsg.BodyPart.Data.Position = 0; IBaseMessage outputMsg = returnMsg; if (outputMessages == null) { outputMessages = new Queue(); } outputMessages.Enqueue(outputMsg); }
private static void ReturnEndPoints(string itineraryName, List<ItineraryEndpoint> endPoints, string resolverName, XmlNode resolverGroup) { XmlNodeList endPointList = resolverGroup.ChildNodes; foreach (XmlNode endPointItem in endPointList) { ItineraryEndpoint endPoint = new ItineraryEndpoint(); endPoint.Itinerary = itineraryName; endPoint.Resolver = resolverName; endPoint.Location = endPointItem.Attributes["location"].Value; endPoint.Protocol = endPointItem.Attributes["protocol"].Value; if (endPointItem.Attributes["requireTransformation"] != null) { if (!string.IsNullOrEmpty(endPointItem.Attributes["requireTransformation"].Value)) { endPoint.RequireTransformation = Convert.ToBoolean(endPointItem.Attributes["requireTransformation"].Value); } } if (endPointItem.Attributes["transformationXSL"] != null) { if (!string.IsNullOrEmpty(endPointItem.Attributes["transformationXSL"].Value)) { endPoint.Transformation = endPointItem.Attributes["transformationXSL"].Value; } } if (endPointItem.Attributes["requireFFDasm"] != null) { if (!string.IsNullOrEmpty(endPointItem.Attributes["requireFFDasm"].Value)) { endPoint.RequireFFDasm = Convert.ToBoolean(endPointItem.Attributes["requireFFDasm"].Value); } } if (endPointItem.Attributes["ffDasmSchemaName"] != null) { if (!string.IsNullOrEmpty(endPointItem.Attributes["ffDasmSchemaName"].Value)) { endPoint.ffDasmSchemaName = endPointItem.Attributes["ffDasmSchemaName"].Value; } } endPoints.Add(endPoint); } }
private static IBaseMessage TransformMessage(IPipelineContext pContext, IBaseMessage pInMsg, ItineraryEndpoint endPoint) { string mapName = endPoint.Transformation; string messageToTransform = string.Empty; string resultMessage = ApplyMapToMessage(pInMsg, mapName, ref messageToTransform); IBaseMessage transformedMessage = MappedMessageToIBase(pContext, pInMsg, resultMessage); pInMsg = transformedMessage; return pInMsg; }