Example #1
0
        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);
                               }
                           }
                        }
                    }
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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;
        }