/// <inheritdoc/> public string ToDelimitedString() { CultureInfo culture = CultureInfo.CurrentCulture; return(string.Format( culture, $"{{0}}{{1}}{ StringHelper.StringFormatSequence(2, 20, Configuration.FieldSeparator) }", Id, FieldSeparator, EncodingCharacters, SendingApplication?.ToDelimitedString(), SendingFacility?.ToDelimitedString(), ReceivingApplication?.ToDelimitedString(), ReceivingFacility?.ToDelimitedString(), DateTimeOfMessage.HasValue ? DateTimeOfMessage.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null, Security, MessageType?.ToDelimitedString(), MessageControlId, ProcessingId?.ToDelimitedString(), VersionId?.ToDelimitedString(), SequenceNumber.HasValue ? SequenceNumber.Value.ToString(Consts.NumericFormat, culture) : null, ContinuationPointer, AcceptAcknowledgmentType, ApplicationAcknowledgmentType, CountryCode, CharacterSet != null ? string.Join(Configuration.FieldRepeatSeparator, CharacterSet) : null, PrincipalLanguageOfMessage?.ToDelimitedString(), AlternateCharacterSetHandlingScheme, MessageProfileIdentifier != null ? string.Join(Configuration.FieldRepeatSeparator, MessageProfileIdentifier.Select(x => x.ToDelimitedString())) : null ).TrimEnd(Configuration.FieldSeparator.ToCharArray())); }