예제 #1
0
        public void FF_CanAddHeaderSpec()
        {
            IBaseComponent disassembler = Disassembler.FlatFile()
                                          .WithHeaderSpec <Schema1_NPP>().End();

            FFDasmComp ff = disassembler as FFDasmComp;

            Assert.IsNotNull(ff.HeaderSpecName);
        }
예제 #2
0
        public void FF_WithRIP()
        {
            IBaseComponent disassembler = Disassembler.FlatFile()
                                          .WithRecoverableInterchange(true).End();

            FFDasmComp ff = disassembler as FFDasmComp;

            Assert.AreEqual(true, ff.RecoverableInterchangeProcessing);
        }
예제 #3
0
        public void FF_WithPreserveHeader()
        {
            IBaseComponent disassembler = Disassembler.FlatFile()
                                          .WithPreserveHeader(true).End();

            FFDasmComp ff = disassembler as FFDasmComp;

            Assert.AreEqual(true, ff.PreserveHeader);
        }
예제 #4
0
        public void FF_WithValidation()
        {
            IBaseComponent disassembler = Disassembler.FlatFile()
                                          .WithValidation(true).End();

            FFDasmComp ff = disassembler as FFDasmComp;

            Assert.AreEqual(true, ff.ValidateDocumentStructure);
        }
예제 #5
0
 internal FFDisassembler()
 {
     _disassembler = new FFDasmComp();
 }
예제 #6
0
        private void MessagingBasedRouting(IPipelineContext pContext, IBaseMessage pInMsg, string documentRootNode, XmlDocument itineraryDocument, 
                                           string documentType, string itineraryType, string originalFileName, string interChangeId, 
                                           string configurationState)
        {
            List<ItineraryEndpoint> endPoints = GetItineraryEndpoints(itineraryDocument, documentRootNode,itineraryType,configurationState);

            List<IBaseMessage> result = new List<IBaseMessage>();

            if (endPoints.Count > 0)
            {
                foreach (ItineraryEndpoint endPoint in endPoints)
                {
                    MemoryStream msgData = new MemoryStream();
                    msgData.Position = 0;

                    pInMsg.BodyPart.Data.Position = 0;
                    pInMsg.BodyPart.Data.CopyTo(msgData);

                    msgData.Position = 0;

                    IBaseMessage workerMessage = CreateNewReturnMessage(pInMsg, pContext, msgData);

                    if (endPoint.RequireFFDasm)
                    {
                        Microsoft.BizTalk.Component.Utilities.SchemaWithNone ffDasmSchema = new Microsoft.BizTalk.Component.Utilities.
                                                                                                SchemaWithNone(endPoint.ffDasmSchemaName);
                        FFDasmComp ffDasm = new FFDasmComp();
                        ffDasm.DocumentSpecName = ffDasmSchema;
                        ffDasm.Disassemble(pContext, workerMessage);
                        workerMessage = ffDasm.GetNext(pContext);
                    }

                    if (endPoint.RequireTransformation)
                    {
                        workerMessage = TransformMessage(pContext, workerMessage, endPoint);

                        workerMessage.BodyPart.Data.Position = 0;

                        XmlDocument transformedMessage = ValidateXml(workerMessage.BodyPart.Data);

                        itineraryType = GetItinaryTypeFromXmlBasedDocuments(transformedMessage);
                    }

                    if (endPoint.RequireRulesPolicy)
                    {
                        string rulesPolicy = endPoint.RulesPolicyName;

                        ExecuteRulesEngine(workerMessage, rulesPolicy);
                    }

                    workerMessage.BodyPart.Data.Position = 0;

                    MemoryStream resultDataStream = new MemoryStream();
                    workerMessage.BodyPart.Data.CopyTo(resultDataStream);

                    resultDataStream.Position = 0;

                    AssignEndPointAndReturnToMessagebox(endPoint, pInMsg, pContext, documentType, resultDataStream,
                                                        itineraryType, originalFileName, interChangeId, configurationState);
                }
            }
        }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ServiceMediationFlatFileDisassembler"/> class.
 /// </summary>
 public ServiceMediationFlatFileDisassembler()
     : base(ResourceManager)
 {
     this.serviceMediationDasm = new ServiceMediation();
     this.flatFileDasmComp     = new FFDasmComp();
 }
예제 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ServiceMediationFlatFileDisassembler"/> class.
 /// </summary>
 /// <param name="dataReaderFunction">The data reader function.</param>
 public ServiceMediationFlatFileDisassembler(FFDasmComp.DataReaderFunction dataReaderFunction)
     : base(ResourceManager)
 {
     this.serviceMediationDasm = new ServiceMediation();
     this.flatFileDasmComp     = new FFDasmComp(dataReaderFunction);
 }
 private void SetFFDasmProperties(FFDasmComp pc)
 {
     pc.ValidateDocumentStructure = false;
 }