private object SaveInterchange(Interchange interchange, string filename, string userName)
        {
            var date = DateTime.MaxValue;

            try
            {
                date = interchange.InterchangeDate;
            }
            catch (Exception exc)
            {
                Trace.TraceWarning(
                    "Interchange date '{0}' and time '{1}' could not be parsed. {2}",
                    interchange.GetElement(9),
                    interchange.GetElement(10),
                    exc.Message);
            }

            var interchangeId = _idProvider.NextId(_schema, "Interchange");
            var containerId   = _idProvider.NextId(_commonDb.Schema, "Container");

            var cmd = new SqlCommand(GetContainerIdSql("ISA") + string.Format(@"
INSERT INTO [{0}].[Interchange] (Id, SenderId, ReceiverId, ControlNumber, [Date], SegmentTerminator, ElementSeparator, ComponentSeparator, Filename, HasError, CreatedBy, CreatedDate)
VALUES (@id, @senderId, @receiverId, @controlNumber, @date, @segmentTerminator, @elementSeparator, @componentSeparator, @filename, 0, @createdBy, getdate())
", _schema));

            cmd.Parameters.AddWithValue("@id", interchangeId);
            cmd.Parameters.AddWithValue("@containerId", containerId);
            cmd.Parameters.AddWithValue("@senderId", interchange.InterchangeSenderId);
            cmd.Parameters.AddWithValue("@receiverId", interchange.InterchangeReceiverId);
            cmd.Parameters.AddWithValue("@controlNumber", interchange.InterchangeControlNumber);
            cmd.Parameters.AddWithValue("@date", date);
            cmd.Parameters.AddWithValue("@segmentTerminator", interchange.Delimiters.SegmentTerminator);
            cmd.Parameters.AddWithValue("@elementSeparator", interchange.Delimiters.ElementSeparator);
            cmd.Parameters.AddWithValue("@componentSeparator", interchange.Delimiters.SubElementSeparator);
            cmd.Parameters.AddWithValue("@filename", filename);
            cmd.Parameters.AddWithValue("@createdBy", userName);

            ExecuteCmd(cmd);

            return(interchangeId);
        }
Ejemplo n.º 2
0
        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)
            });
        }