Ejemplo n.º 1
0
        /// <summary>
        /// Write Invoices
        /// </summary>
        static void Write()
        {
            var transaction = BuildInvoice("1");

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

                var ediString = stream.LoadToString();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Write Payment Order
        /// </summary>
        static void Write()
        {
            var transaction = BuildPaymentOrder("1");

            using (var stream = new MemoryStream())
            {
                using (var writer = new X12Writer(stream))
                {
                    writer.Write(SegmentBuilders.BuildIsa("1"));
                    writer.Write(SegmentBuilders.BuildGs("1", "SENDER1", "RECEIVER1", "005010X218"));
                    writer.Write(transaction);
                }

                var ediString = stream.LoadToString();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Write Institutional Claim
        /// </summary>
        static void Write()
        {
            var transaction = BuildInstitutionalClaim("987654");

            using (var stream = new MemoryStream())
            {
                using (var writer = new X12Writer(stream))
                {
                    writer.Write(SegmentBuilders.BuildIsa("1"));
                    writer.Write(SegmentBuilders.BuildGs("1", "SENDER1", "RECEIVER1", "005010X223A2"));
                    writer.Write(transaction);
                }

                var ediString = stream.LoadToString();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Generate and write EDI document to a stream
        /// </summary>
        public static void WriteSinglePurchaseOrderToStream()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            //  1.  Construct the purchase order
            var po = X12TransactionBuilders.BuildPurchaseOrder("1");

            //  2.  Validate it by skipping trailer validation
            MessageErrorContext errorContext;

            if (po.IsValid(out errorContext, new ValidationSettings {
                SkipTrailerValidation = true
            }))
            {
                Debug.WriteLine("Message {0} with control number {1} is valid.", errorContext.Name, errorContext.ControlNumber);

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

                    Debug.Write(stream.LoadToString());
                }
            }
            else
            {
                //  The purchase order is invalid
                Debug.WriteLine("Message {0} with control number {1} is invalid with errors:", errorContext.Name,
                                errorContext.ControlNumber);

                //  List all error messages
                var errors = errorContext.Flatten();
                foreach (var error in errors)
                {
                    Debug.WriteLine(error);
                }
            }
        }
Ejemplo n.º 5
0
        private string Get277Edi(TS277 ts277)
        {
            var transaction = ts277;

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

                var ediString = stream.LoadToString();
                return(ediString);
            }
        }
Ejemplo n.º 6
0
        public static string Generate(List <EdiItem> items, Separators separators, string postFix,
                                      Encoding encoding = null)
        {
            using (var stream = new MemoryStream())
            {
                var writer = new X12Writer(stream, encoding, postFix);
                foreach (var item in items)
                {
                    var message = item as EdiMessage;
                    if (message != null)
                    {
                        writer.Write(message);
                        continue;
                    }

                    var gs = item as GS;
                    if (gs != null)
                    {
                        writer.Write(gs);
                        continue;
                    }

                    var ge = item as GE;
                    if (ge != null)
                    {
                        continue;
                    }

                    var ta1 = item as TA1;
                    if (ta1 != null)
                    {
                        writer.Write(ta1);
                    }

                    var isa = item as ISA;
                    if (isa != null)
                    {
                        writer.Write(isa, separators);
                    }
                }
                writer.Flush();

                return(CommonHelper.LoadString(stream));
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Generate and write EDI document to a file
        /// </summary>
        static void WriteSingleInvoiceToFile()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            //  1.  Construct the invoice message with data from database, service or domain objects\logic.
            var invoice = CreateInvoice("00000001");

            const string folder = @"C:\test";

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }

            //  2.  Validate it to ensure the object adheres to the rule
            //  Always skip trailer validation because all trailers are automatically generated by the writer
            MessageErrorContext errorContext;

            if (invoice.IsValid(out errorContext, true))
            {
                Debug.WriteLine("Message {0} with control number {1} is valid.", errorContext.Name,
                                errorContext.ControlNumber);

                //  3.  Use default encoding and no segment postfix
                //  Write directly to a file
                var writer = new X12Writer(string.Format("{0}\\output.txt", folder), false);

                writer.Write(Helpers.CreateIsa("000011111"));
                writer.Write(Helpers.CreateGs("111111111"));
                writer.Write(invoice);

                //  4.  Always flush at the end to release the cache
                writer.Flush();

                writer.Dispose();

                Debug.WriteLine("Written to file.");
            }
            else
            {
                //  The purchase order is invalid
            }
        }
Ejemplo n.º 8
0
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello, World!");

            //  1.  Construct the purchase order
            var purchaseOrder = EF_X12_004010_850_Builder.BuildPurchaseOrder("1");

            //  2.  Write directly to a file
            //  Change the path to a file on your machine
            using (var writer = new X12Writer(@"C:\Users\alxje\dev\Test\PurchaseOrderTestFile.txt", false))
            {
                writer.Write(SegmentBuilders.BuildIsa("1"));
                writer.Write(SegmentBuilders.BuildGs("1"));
                writer.Write(purchaseOrder);
            }

            Debug.WriteLine("Written to file.");
        }
        private static string BuildAck <T>(ISA originalIsa, GS originalGs, T ack, AckVersion ackVersion, int isaControlNumber = 1, int gsControlNumber = 1) where T : EdiMessage
        {
            var memoryStream = new MemoryStream();

            using (var writer = new X12Writer(memoryStream, new X12WriterSettings()
            {
                Encoding = Encoding.Default, Postfix = Environment.NewLine
            }))
            {
                writer.Write(originalIsa.ToAckIsa(isaControlNumber.ToString().PadLeft(9, '0'), ackVersion));
                writer.Write(originalGs.ToAckGs(gsControlNumber.ToString(), ackVersion));
                writer.Write(ack);
            }

            memoryStream.Position = 0;
            using (var reader = new StreamReader(memoryStream))
                return(reader.ReadToEnd());
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Write Claim
        /// </summary>
        public static void Write()
        {
            var transaction = BuildClaim("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(transaction);
                }

                var ediString = stream.LoadToString();
            }
        }
Ejemplo n.º 11
0
        /// <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_X12_004010_810_Builder.BuildInvoice("1");

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

            Debug.WriteLine("Written to file.");
        }
Ejemplo n.º 12
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, Encoding.UTF8, Environment.NewLine))
                {
                    writer.Write(SegmentBuilders.BuildIsa("1"));
                    writer.Write(SegmentBuilders.BuildGs("1"));
                    writer.Write(invoice);
                }

                Debug.Write(stream.LoadToString());
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        ///  Writes to stream without envelopes - no ISA, GS, GE or IEA
        /// </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 X12Writer(stream, new X12WriterSettings()
                {
                    Separators = Separators.X12
                }))
                {
                    writer.Write(EF_X12_004010_810_Builder.BuildInvoice("1"));
                    writer.Write(EF_X12_004010_810_Builder.BuildInvoice("2"));
                }

                Debug.Write(stream.LoadToString());
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        ///  Writes to stream without envelopes - no ISA, GS, GE or IEA
        /// </summary>
        public static void WriteWithoutEnvelopes()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            using (var stream = new MemoryStream())
            {
                //  Set the separators
                using (var writer = new X12Writer(stream, new X12WriterSettings()
                {
                    Separators = Separators.X12
                }))
                {
                    writer.Write(X12TransactionBuilders.BuildInvoice("1"));
                    writer.Write(X12TransactionBuilders.BuildInvoice("2"));
                }

                Debug.Write(stream.LoadToString());
            }
        }
Ejemplo n.º 15
0
        public void TestNoPreserveWhiteSpace()
        {
            // ARRANGE
            const string sample   = "EdiWeave.UnitTests.X12.Edi.X12_810_00204_WriteNoPreserveWhitespace.txt";
            var          expected = CommonHelper.LoadString(sample);
            string       actual;

            // ACT
            using (var stream = new MemoryStream())
            {
                var writer = new X12Writer(stream, Encoding.UTF8, Environment.NewLine);

                writer.Write(X12Helper.CreateIsa());
                writer.Write(X12Helper.CreateGs());
                writer.Write(X12Helper.CreateInvoice());
                writer.Flush();

                actual = CommonHelper.LoadString(stream);
            }

            // ASSERT
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 16
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());
                }
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Write with segment postfix.
        /// </summary>
        public static void Run()
        {
            Debug.WriteLine("******************************");
            Debug.WriteLine(MethodBase.GetCurrentMethod().Name);
            Debug.WriteLine("******************************");

            var invoice = EF_X12_004010_810_Builder.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());
            }
        }
Ejemplo n.º 18
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());
                }
            }
        }
Ejemplo n.º 19
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());
            }
        }