/// <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()); } } }
/// <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()); } }
/// <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()); } } }
/// <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()); } }