/// <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 }); }
/// <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)); }
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)); }
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()); }
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)); }
/// <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()); }
private static void ProcessInvoice(UNB unb, UNG ung, TSINVOIC invoice) { // Do something with the invoice }
private static void ProcessPurchaseOrder(UNB unb, UNG ung, TSORDERS purchaseOrder) { // Do something with the purchase order }