Esempio n. 1
0
        /// <summary>
        /// Write transactions with whitespace.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            var invoice = EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1");

            //  Initialize a blank property
            invoice.BGM.Responsetypecoded_04 = "";

            using (var stream = new MemoryStream())
            {
                //  Set PreserveWhitespace flag to true
                using (var writer = new EdifactWriter(stream, new EdifactWriterSettings()
                {
                    PreserveWhitespace = true
                }))
                {
                    writer.Write(SegmentBuilders.BuildUnb("1"));
                    writer.Write(invoice);
                }

                Debug.Write(stream.LoadToString());
            }
        }
        /// <summary>
        /// Batch multiple transactions under multiple functional groups in the same EDI stream.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream))
                {
                    writer.Write(SegmentBuilders.BuildUnb("1"));

                    //  1.  Write the first group
                    writer.Write(SegmentBuilders.BuildUng("1", "INVOIC"));
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1"));

                    //  2.  Write the second group
                    //  No need to close the previous group with a UNE
                    writer.Write(SegmentBuilders.BuildUng("2", "ORDERS"));
                    writer.Write(EF_EDIFACT_D96A_ORDERS_Builder.BuildPurchaseOrder("1"));
                }

                Debug.Write(stream.LoadToString());
            }
        }
        /// <summary>
        /// Write without auto trailers
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            using (var stream = new MemoryStream())
            {
                //  Set AutoTrailers to false
                using (var writer = new EdifactWriter(stream, new EdifactWriterSettings {
                    AutoTrailers = false
                }))
                {
                    writer.Write(SegmentBuilders.BuildUnb("1"));
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1"));
                    //  trailers need to be manually written
                }

                using (var writer = new StreamWriter(stream))
                {
                    var unz = new UNZ();
                    unz.InterchangeControlCount_1     = "1";
                    unz.InterchangeControlReference_2 = "000000001";
                    writer.Write(unz.ToEdi(Separators.Edifact));

                    writer.Flush();

                    Debug.Write(stream.LoadToString());
                }
            }
        }
        /// <summary>
        /// Generate and write EDI document to a file.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            //  1.  Construct the invoice
            var invoice = EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1");

            //  2.  Write directly to a file
            //  Change the patch to a file on your machine
            using (var writer = new EdifactWriter(@"C:\Test\Output.txt", false))
            {
                writer.Write(SegmentBuilders.BuildUnb("1"));
                writer.Write(invoice);
            }

            Debug.WriteLine("Written to file.");
        }
        /// <summary>
        /// Write to stream without envelopes - no UNB, UNG, UNE or UNZ.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            using (var stream = new MemoryStream())
            {
                //  Set the separators
                using (var writer = new EdifactWriter(stream, new EdifactWriterSettings()
                {
                    Separators = Separators.Edifact
                }))
                {
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1"));
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("2"));
                }

                Debug.Write(stream.LoadToString());
            }
        }
        /// <summary>
        /// Generate and write EDI document to a stream.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            //  1.  Construct the invoice
            var invoice = EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream))
                {
                    //  2.  Begin with UNB segment
                    writer.Write(SegmentBuilders.BuildUnb("1"));
                    //  3.  Then write the invoice(s)
                    writer.Write(invoice);
                }

                Debug.Write(stream.LoadToString());
            }
        }
        /// <summary>
        /// Write with segment postfix.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            var invoice = EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream, new EdifactWriterSettings()
                {
                    Postfix = Environment.NewLine
                }))
                {
                    writer.Write(SegmentBuilders.BuildUnb("1"));
                    writer.Write(invoice);
                }

                Debug.Write(stream.LoadToString());
            }
        }
        /// <summary>
        /// Batch multiple interchanges in the same EDI stream.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream))
                {
                    //  1.  Write the first interchange
                    writer.Write(SegmentBuilders.BuildUnb("1"));
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1"));

                    //  2.  Write the second interchange
                    //  No need to close the previous interchange with a IEA
                    writer.Write(SegmentBuilders.BuildUnb("2"));
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1"));
                }

                Debug.Write(stream.LoadToString());
            }
        }
        /// <summary>
        /// Write with custom separators, by default it uses the standard separators.
        /// UNA segment is automatically applied if any of the custom separators is different than the default.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            var invoice = EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream))
                {
                    //  Set a custom segment separator
                    var separators = new Separators('|', Separators.Edifact.ComponentDataElement,
                                                    Separators.Edifact.DataElement, Separators.Edifact.RepetitionDataElement, Separators.Edifact.Escape);

                    //  Write the UNB with the custom separator set
                    writer.Write(SegmentBuilders.BuildUnb("1"), separators);
                    writer.Write(invoice);
                }

                Debug.Write(stream.LoadToString());
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Batch multiple transactions in the same functional group\EDI stream.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream))
                {
                    writer.Write(SegmentBuilders.BuildUnb("1"));

                    //  1.  Write the first invoice
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("1"));

                    //  2.  Write the second invoice
                    writer.Write(EF_EDIFACT_D96A_INVOIC_Builder.BuildInvoice("2"));

                    //  3.  Write any subsequent invoices...
                }

                Debug.Write(stream.LoadToString());
            }
        }