示例#1
0
        /// <summary>
        /// Pull the last purchase order from DB
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            using (var db = new X12Context())
            {
                var po = db.TS850.OrderByDescending(o => o.Id).FirstOrDefault();

                using (var stream = new MemoryStream())
                {
                    using (var writer = new X12Writer(stream))
                    {
                        writer.Write(SegmentBuilders.BuildIsa("1"));
                        writer.Write(SegmentBuilders.BuildGs("1"));
                        writer.Write(po);
                    }

                    Debug.Write(stream.LoadToString());
                }
            }
        }
示例#2
0
        /// <summary>
        /// Write with segment postfix.
        /// </summary>
        public static void WriteWithSegmetPostfix()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

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

            using (var stream = new MemoryStream())
            {
                using (var writer = new X12Writer(stream, new X12WriterSettings()
                {
                    Postfix = Environment.NewLine
                }))
                {
                    writer.Write(SegmentBuilders.BuildIsa("1"));
                    writer.Write(SegmentBuilders.BuildGs("1"));
                    writer.Write(invoice);
                }

                Debug.Write(stream.LoadToString());
            }
        }
示例#3
0
        /// <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 X12Writer(stream, new X12WriterSettings {
                    AutoTrailers = false
                }))
                {
                    writer.Write(SegmentBuilders.BuildIsa("1"));
                    writer.Write(SegmentBuilders.BuildGs("1"));
                    writer.Write(EF_X12_004010_810_Builder.BuildInvoice("1"));
                    //  trailers need to be manually written
                }

                using (var writer = new StreamWriter(stream))
                {
                    var ge = new GE();
                    ge.NumberOfIncludedSets_1 = "1";
                    ge.GroupControlNumber_2   = "000000001";
                    writer.Write(ge.ToEdi(Separators.X12));

                    var iea = new IEA();
                    iea.NumberOfIncludedGroups_1   = "1";
                    iea.InterchangeControlNumber_2 = "000000001";
                    writer.Write(iea.ToEdi(Separators.X12));

                    writer.Flush();

                    Debug.Write(stream.LoadToString());
                }
            }
        }
示例#4
0
        /// <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 = SegmentBuilders.BuildInvoice("1");

            using (var stream = new MemoryStream())
            {
                using (var writer = new X12Writer(stream))
                {
                    //  2.  Begin with ISA segment
                    writer.Write(SegmentBuilders.BuildIsa("1"));
                    //  3.  Follow up with GS segment
                    writer.Write(SegmentBuilders.BuildGs("1"));
                    //  4.  Then write the invoice(s)
                    writer.Write(invoice);
                }

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