Exemplo n.º 1
0
        /// <summary>
        /// Swap the original sender and receiver and copy over the rest of the values.
        /// </summary>
        public static UNG ToAckUng(this UNG header, string controlNumber)
        {
            if (header == null)
            {
                return(null);
            }

            return(new UNG
            {
                MessageGroupIdentification_1 = "CONTRL",
                APPLICATIONSENDERIDENTIFICATION_2 = new S006
                {
                    ApplicationSenderIdentification_1 =
                        header.APPLICATIONRECIPIENTIDENTIFICATION_3.ApplicationRecipientIdentification_1,
                    IdentificationCodeQualifier_2 =
                        header.APPLICATIONRECIPIENTIDENTIFICATION_3.IdentificationCodeQualifier_2
                },
                APPLICATIONRECIPIENTIDENTIFICATION_3 = new S007
                {
                    ApplicationRecipientIdentification_1 = header.APPLICATIONSENDERIDENTIFICATION_2.ApplicationSenderIdentification_1,
                    IdentificationCodeQualifier_2 = header.APPLICATIONSENDERIDENTIFICATION_2.IdentificationCodeQualifier_2
                },
                DATEANDTIMEOFPREPARATION_4 = new S004
                {
                    Date_1 = DateTime.Now.Date.ToString("yyMMdd"),
                    Time_2 = DateTime.Now.TimeOfDay.ToString("hhmm")
                },
                GroupReferenceNumber_5 = controlNumber,
                ControllingAgency_6 = header.ControllingAgency_6
            });
        }
Exemplo n.º 2
0
        /// <summary>
        /// Parse the transaction explicitly.
        /// </summary>
        /// <param name="unb">The UNB.</param>
        /// <param name="ung">The UNG.</param>
        /// <param name="unh">The UNH.</param>
        /// <returns>The type to parse to.</returns>
        public static TypeInfo FullTemplateFactory(UNB unb, UNG ung, UNH unh)
        {
            if (unb.INTERCHANGESENDER_2.InterchangeSenderIdentification_1 == "SPLIT1" &&
                unh.MessageIdentifier_02.MessageType_01 == "ORDERS")
            {
                return(typeof(TSORDERSSplit).GetTypeInfo());
            }

            if (unb.INTERCHANGESENDER_2.InterchangeSenderIdentification_1 == "INVALID1" &&
                unh.MessageIdentifier_02.MessageType_01 == "ORDERS")
            {
                return(typeof(TSORDERSValidation).GetTypeInfo());
            }

            if (unb.INTERCHANGESENDER_2.InterchangeSenderIdentification_1 == "CUSTOM1" &&
                unh.MessageIdentifier_02.MessageType_01 == "ORDERS")
            {
                return(typeof(TSORDERSCustom1).GetTypeInfo());
            }

            if (unb.INTERCHANGESENDER_2.InterchangeSenderIdentification_1 == "CUSTOM2" &&
                unh.MessageIdentifier_02.MessageType_01 == "ORDERS")
            {
                return(typeof(TSORDERSCustom2).GetTypeInfo());
            }

            if (unh.MessageIdentifier_02.MessageReleaseNumber_03 == "96A" &&
                unh.MessageIdentifier_02.MessageType_01 == "ORDERS")
            {
                return(typeof(TSORDERS).GetTypeInfo());
            }

            if (unh.MessageIdentifier_02.MessageReleaseNumber_03 == "96A" &&
                unh.MessageIdentifier_02.MessageType_01 == "INVOIC")
            {
                return(typeof(TSINVOIC).GetTypeInfo());
            }

            if (unh.MessageIdentifier_02.MessageReleaseNumber_03 == "96A" &&
                unh.MessageIdentifier_02.MessageType_01 == "INVOIC")
            {
                return(typeof(TSINVOIC).GetTypeInfo());
            }

            if (unh.MessageIdentifier_02.MessageType_01 == "PNRGOV")
            {
                return(typeof(TSPNRGOV).GetTypeInfo());
            }

            if (unh.MessageIdentifier_02.MessageReleaseNumber_03 == "01B" &&
                unh.MessageIdentifier_02.MessageType_01 == "INVOIC" &&
                unh.MessageIdentifier_02.AssociationAssignedCode_05.StartsWith("EAN", System.StringComparison.Ordinal))
            {
                return(typeof(Templates.EancomD01B.TSINVOIC).GetTypeInfo());
            }

            throw new System.Exception(string.Format("Transaction {0} for version {1} is not supported.",
                                                     unh.MessageIdentifier_02.MessageType_01, unh.MessageIdentifier_02.MessageVersionNumber_02 + unh.MessageIdentifier_02.MessageReleaseNumber_03));
        }
        public static TypeInfo TemplateFactory(UNB unb, UNG ung, UNH unh)
        {
            if (unh.MessageIdentifier_02.MessageType_01 == "PNRGOV")
            {
                return(typeof(TSPNRGOV).GetTypeInfo());
            }

            throw new System.Exception(string.Format("Transaction {0} for version {1} is not supported.",
                                                     unh.MessageIdentifier_02.MessageType_01, unh.MessageIdentifier_02.MessageVersionNumber_02 + unh.MessageIdentifier_02.MessageReleaseNumber_03));
        }
Exemplo n.º 4
0
        public static TypeInfo ModifiedTypeFactory(UNB unb, UNG ung, UNH unh)
        {
            if (unh.MessageIdentifier_02.MessageReleaseNumber_03 == "96A" &&
                unh.MessageIdentifier_02.MessageType_01 == "ORDERS")
            {
                return(typeof(TSORDERSModified).GetTypeInfo());
            }

            throw new Exception(string.Format("Transaction {0} for version {1} is not supported.",
                                              unh.MessageIdentifier_02.MessageType_01, unh.MessageIdentifier_02.MessageVersionNumber_02 + unh.MessageIdentifier_02.MessageReleaseNumber_03));
        }
Exemplo n.º 5
0
        private static string BuildAck(UNB originalUnb, UNG originalUng, EdiMessage ack, int unbControlNumber = 1, int ungControlNumber = 1)
        {
            var memoryStream = new MemoryStream();
            var writer       = new EdifactWriter(memoryStream, Encoding.Default, Environment.NewLine);

            writer.Write(originalUnb.ToAckUnb(unbControlNumber.ToString()));
            if (originalUng != null)
            {
                writer.Write(originalUng.ToAckUng(ungControlNumber.ToString()));
            }
            writer.Write(ack);
            writer.Flush();
            memoryStream.Position = 0;
            using (var reader = new StreamReader(memoryStream))
                return(reader.ReadToEnd());
        }
Exemplo n.º 6
0
        public static TypeInfo NoEnvelopeTemplateFactory(UNB unb, UNG ung, UNH unh)
        {
            if (unh.MessageIdentifier_02.MessageReleaseNumber_03 == "96A" &&
                unh.MessageIdentifier_02.MessageType_01 == "ORDERS")
            {
                return(typeof(TSORDERS).GetTypeInfo());
            }

            if (unh.MessageIdentifier_02.MessageReleaseNumber_03 == "96A" &&
                unh.MessageIdentifier_02.MessageType_01 == "INVOIC")
            {
                return(typeof(TSINVOIC).GetTypeInfo());
            }

            throw new System.Exception(string.Format("Transaction {0} for version {1} is not supported.",
                                                     unh.MessageIdentifier_02.MessageType_01, unh.MessageIdentifier_02.MessageVersionNumber_02 + unh.MessageIdentifier_02.MessageReleaseNumber_03));
        }
Exemplo n.º 7
0
        /// <summary>
        /// Build functional CONTRL acknowledgment using the original UNB and UNG.
        /// </summary>
        public static string BuildAck(UNB originalUnb, UNG originalUng, TSCONTRL ack, int unbControlNumber = 1, int ungControlNumber = 1)
        {
            var memoryStream = new MemoryStream();

            using (var writer = new EdifactWriter(memoryStream, new EdifactWriterSettings()
            {
                Encoding = Encoding.Default, Postfix = Environment.NewLine
            }))
            {
                writer.Write(originalUnb.ToAckUnb(unbControlNumber.ToString()));
                if (originalUng != null)
                {
                    writer.Write(originalUng.ToAckUng(ungControlNumber.ToString()));
                }
                writer.Write(ack);
            }

            memoryStream.Position = 0;
            using (var reader = new StreamReader(memoryStream))
                return(reader.ReadToEnd());
        }
Exemplo n.º 8
0
 private static void ProcessInvoice(UNB unb, UNG ung, TSINVOIC invoice)
 {
     //  Do something with the invoice
 }
Exemplo n.º 9
0
 private static void ProcessPurchaseOrder(UNB unb, UNG ung, TSORDERS purchaseOrder)
 {
     //  Do something with the purchase order
 }