Example #1
0
        /// <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);
            }
        }
Example #4
0
        /// <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);
            }
        }