private AckEnvelope ExtractEnv(Interchange isa, FunctionGroup gs, Transaction st) { return(new AckEnvelope() { ISA01_AuthInfoQualifier = isa.AuthorInfoQualifier, ISA02_AuthInfo = isa.AuthorInfo, ISA03_SecurityInfoQualifier = isa.SecurityInfoQualifier, ISA04_SecurityInfo = isa.SecurityInfo, ISA05_InterchangeSenderIdQualifier = isa.InterchangeSenderIdQualifier, ISA06_InterchangeSenderId = isa.InterchangeSenderId, ISA07_InterchangeReceiverIdQualifier = isa.InterchangeReceiverIdQualifier, ISA08_InterchangeReceiverId = isa.InterchangeReceiverId, ISA09_Date = isa.InterchangeDate, ISA10_Time = isa.GetElement(10), ISA11_InterchangeControlStandardsIdentifier = isa.GetElement(11), ISA12_InterchangeControlVersionNumber = isa.GetElement(12), ISA13_InterchangeControlNumber = isa.InterchangeControlNumber, ISA14_AcknowledgmentRequested = isa.GetElement(14), ISA15_UsageIndicator = isa.GetElement(15), ISA16_ComponentElementSeparator = isa.GetElement(16), IEA01_NumberOfIncludedFunctionalGroups = (isa.TrailerSegments.ToList()[0]).GetElement(1), IEA02_InterchangeControlNumber = (isa.TrailerSegments.ToList()[0]).GetElement(2), GS01_FunctionalIdentifierCode = gs.FunctionalIdentifierCode, GS02_ApplicationSenderCode = gs.ApplicationSendersCode, GS03_ApplicationReceiverCode = gs.ApplicationReceiversCode, GS04_Date = gs.Date, GS06_GroupControlNumber = gs.ControlNumber.ToString(), GS07_ResponsibleAgencyCode = gs.ResponsibleAgencyCode, GS08_Version = gs.VersionIdentifierCode, GS05_Time = gs.GetElement(5), GE01_NumberOfTransactionSetsIncluded = (gs.TrailerSegments.ToList()[0]).GetElement(1), GE02_GroupControlNumber = (gs.TrailerSegments.ToList()[0]).GetElement(2), ST01_TransactionSetIdentifierCode = st.IdentifierCode, ST02_TransactionSetControlNumber = st.ControlNumber, SE01_NumberOfIncludedSegments = (st.TrailerSegments.ToList()[0]).GetElement(1), SE02_TransactionSetControlNumber = (st.TrailerSegments.ToList()[0]).GetElement(2) }); }
private object SaveFunctionalGroup(FunctionGroup functionGroup, object interchangeId) { string idCode; var date = DateTime.MaxValue; var controlNumber = 0; string version; if (functionGroup.FunctionalIdentifierCode.Length <= 2) { idCode = functionGroup.FunctionalIdentifierCode; } else { idCode = functionGroup.FunctionalIdentifierCode.Substring(0, 2); Trace.TraceWarning( "FunctionalIdentifier code '{0}' will be truncated because it exceeds the max length of 2.", functionGroup.FunctionalIdentifierCode); } try { date = functionGroup.Date; } catch (Exception exc) { Trace.TraceWarning( "FunctionalGroup date '{0}' and time '{1}' could not be parsed. {2}", functionGroup.GetElement(4), functionGroup.GetElement(5), exc.Message); } try { controlNumber = functionGroup.ControlNumber; } catch (Exception exc) { Trace.TraceWarning( "FunctionalGroup control number '{0}' could not be parsed. {1}", functionGroup.GetElement(6), exc.Message); } if (functionGroup.VersionIdentifierCode.Length <= 12) { version = functionGroup.VersionIdentifierCode; } else { version = functionGroup.VersionIdentifierCode.Substring(0, 12); Trace.TraceWarning( "FunctionalGroup version number '{0}' will be truncated because it exceeds the max length of 12.", functionGroup.VersionIdentifierCode); } var functionalGroupId = _idProvider.NextId(_schema, "FunctionalGroup"); var containerId = _idProvider.NextId(_commonDb.Schema, "Container"); var cmd = new SqlCommand(GetContainerIdSql("GS") + string.Format(@" INSERT INTO [{0}].[FunctionalGroup] (Id, InterchangeId, FunctionalIdCode, Date, ControlNumber, Version) VALUES (@id, @interchangeId, @functionalIdCode, @date, @controlNumber, @version) ", _schema, _commonDb.Schema)); cmd.Parameters.AddWithValue("@id", functionalGroupId); cmd.Parameters.AddWithValue("@containerId", containerId); cmd.Parameters.AddWithValue("@interchangeId", interchangeId); cmd.Parameters.AddWithValue("@functionalIdCode", idCode); cmd.Parameters.AddWithValue("@date", date); cmd.Parameters.AddWithValue("@controlNumber", controlNumber); cmd.Parameters.AddWithValue("@version", version); ExecuteCmd(cmd); return(functionalGroupId); }
private object SaveFunctionalGroup(FunctionGroup functionGroup, object interchangeId) { string idCode; var date = DateTime.MaxValue; int controlNumber = 0; string version; if (functionGroup.FunctionalIdentifierCode.Length <= 2) { idCode = functionGroup.FunctionalIdentifierCode; } else { idCode = functionGroup.FunctionalIdentifierCode.Substring(0, 2); Trace.TraceWarning( Resources.FunctionalIdentifierTruncatedWarning, functionGroup.FunctionalIdentifierCode); } try { date = functionGroup.Date; } catch (Exception exc) { Trace.TraceWarning( Resources.FunctionalGroupDateTimeParsingError, functionGroup.GetElement(4), functionGroup.GetElement(5), exc.Message); } try { controlNumber = functionGroup.ControlNumber; } catch (Exception exc) { Trace.TraceWarning( Resources.FunctionalGroupControlNumberParsingError, functionGroup.GetElement(6), exc.Message); } if (functionGroup.VersionIdentifierCode.Length <= 12) { version = functionGroup.VersionIdentifierCode; } else { version = functionGroup.VersionIdentifierCode.Substring(0, 12); Trace.TraceWarning( Resources.FunctionalGroupVersionNumberTruncatedWarning, functionGroup.VersionIdentifierCode); } var functionalGroupId = this.idProvider.NextId(this.Schema, "FunctionalGroup"); var containerId = this.idProvider.NextId(this.CommonDb.Schema, "Container"); var cmd = new SqlCommand( this.GetContainerIdSql("GS") + $"INSERT INTO [{this.Schema}].[FunctionalGroup] (Id, InterchangeId, FunctionalIdCode, Date, ControlNumber, Version)\n" + "VALUES (@id, @interchangeId, @functionalIdCode, @date, @controlNumber, @version)"); cmd.Parameters.AddWithValue("@id", functionalGroupId); cmd.Parameters.AddWithValue("@containerId", containerId); cmd.Parameters.AddWithValue("@interchangeId", interchangeId); cmd.Parameters.AddWithValue("@functionalIdCode", idCode); cmd.Parameters.AddWithValue("@date", date); cmd.Parameters.AddWithValue("@controlNumber", controlNumber); cmd.Parameters.AddWithValue("@version", version); this.ExecuteCmd(cmd); return(functionalGroupId); }