/// <summary> /// Formats the specified field. /// </summary> /// <param name="field"> /// It's the field to format. /// </param> /// <param name="formatterContext"> /// It's the context of formatting to be used by the method. /// </param> public override void Format(Field field, ref FormatterContext formatterContext) { if (!(field is BinaryField)) { throw new ArgumentException( SR.BinaryMessageFieldExpected, "field"); } if ((field == null) | (field.GetBytes() == null)) { _lengthManager.WriteLength(field, 0, 0, ref formatterContext); _lengthManager.WriteLengthTrailer(field, 0, 0, ref formatterContext); } else { _lengthManager.WriteLength(field, field.GetBytes().Length, _encoder.GetEncodedLength(field.GetBytes().Length), ref formatterContext); _encoder.Encode(field.GetBytes(), ref formatterContext); _lengthManager.WriteLengthTrailer(field, field.GetBytes().Length, _encoder.GetEncodedLength(field.GetBytes().Length), ref formatterContext); } }
/// <summary> /// Formats the specified field. /// </summary> /// <param name="field"> /// It's the field to format. /// </param> /// <param name="formatterContext"> /// It's the context of formatting to be used by the method. /// </param> public override void Format(Field field, ref FormatterContext formatterContext) { if (!(field is InnerMessageField)) { throw new ArgumentException( SR.InnerMessageFieldExpected, "field"); } Message message = null; if (field != null) { message = field.Value as Message; } if (message == null) { _lengthManager.WriteLength(field, 0, 0, ref formatterContext); _lengthManager.WriteLengthTrailer(field, 0, 0, ref formatterContext); } else { message.Formatter = _messageFormatter; byte[] data = message.GetBytes(); _lengthManager.WriteLength(field, data.Length, _encoder.GetEncodedLength(data.Length), ref formatterContext); _encoder.Encode(data, ref formatterContext); _lengthManager.WriteLengthTrailer(field, data.Length, _encoder.GetEncodedLength(data.Length), ref formatterContext); } }
/// <summary> /// Formatea un campo cuyo valor es una cadena de caracteres. /// </summary> /// <param name="header"> /// Es el cabezal a formatear. /// </param> /// <param name="formatterContext"> /// Es el contexto de formateo que debe ser empleado. /// </param> public virtual void Format(MessageHeader header, ref FormatterContext formatterContext) { string headerValue = null; if (header != null) { if (!(header is StringMessageHeader)) { throw new ArgumentException(SR.StringHeaderExpected, "header"); } headerValue = (( StringMessageHeader)header).Value; } // Pad if padding available. if (_padding != null) { headerValue = _padding.Pad(headerValue, _lengthManager.MaximumLength); } if (headerValue == null) { _lengthManager.WriteLength(header, 0, 0, ref formatterContext); _lengthManager.WriteLengthTrailer(header, 0, 0, ref formatterContext); } else { _lengthManager.WriteLength(header, headerValue.Length, _encoder.GetEncodedLength(headerValue.Length), ref formatterContext); _encoder.Encode(headerValue, ref formatterContext); _lengthManager.WriteLengthTrailer(header, headerValue.Length, _encoder.GetEncodedLength(headerValue.Length), ref formatterContext); } }
/// <summary> /// Formatea un campo cuyo valor es una cadena de caracteres. /// </summary> /// <param name="field"> /// Es el campo a formatear. /// </param> /// <param name="formatterContext"> /// Es el contexto de formateo que debe ser empleado. /// </param> public override void Format(Field field, ref FormatterContext formatterContext) { if (!(field is StringField)) { throw new ArgumentException(SR.StringMessageFieldExpected, "field"); } string fieldValue = (( StringField)field).FieldValue; // Pad if padding available. if (_padding != null) { fieldValue = _padding.Pad(fieldValue, _lengthManager.MaximumLength); } if (_validator != null) { _validator.Validate(fieldValue); } if (fieldValue == null) { _lengthManager.WriteLength(field, 0, 0, ref formatterContext); _lengthManager.WriteLengthTrailer(field, 0, 0, ref formatterContext); } else { _lengthManager.WriteLength(field, fieldValue.Length, _encoder.GetEncodedLength(fieldValue.Length), ref formatterContext); _encoder.Encode(fieldValue, ref formatterContext); _lengthManager.WriteLengthTrailer(field, fieldValue.Length, _encoder.GetEncodedLength(fieldValue.Length), ref formatterContext); } }