Ejemplo n.º 1
0
            /// <summary>
            /// 写入行文本协议内容
            /// </summary>
            /// <exception cref="InvalidOperationException"></exception>
            /// <param name="writer">写入器 </param>
            public void WriteTo(ILineProtocolWriter writer)
            {
                if (this.builder.fields.Count == 0)
                {
                    throw new InvalidOperationException($"至少设置一个Field值");
                }

                writer.Write(this.builder.measurement);
                foreach (var item in this.builder.tags.OrderBy(item => item.Column))
                {
                    writer.WriteComma().Write(item.Column).WriteEqual().Write(item.Value);
                }

                var firstField = true;

                foreach (var item in this.builder.fields.OrderBy(item => item.Column))
                {
                    if (firstField == true)
                    {
                        firstField = false;
                        writer.WriteSpace();
                    }
                    else
                    {
                        writer.WriteComma();
                    }
                    writer.Write(item.Column).WriteEqual().Write(item.Value);
                }

                if (this.builder.timestamp != null)
                {
                    writer.WriteSpace().Write(this.builder.timestamp.ToString());
                }
            }
Ejemplo n.º 2
0
        /// <summary>
        /// 写入行文本协议内容
        /// </summary>
        /// <param name="writer">写入器 </param>
        public void WriteTo(ILineProtocolWriter writer)
        {
            writer.Write(desciptor.Utf8Measurement);
            foreach (var tag in desciptor.Tags)
            {
                var value = tag.GetStringValue(entity);
                writer.WriteComma().Write(tag.Utf8Name).WriteEqual().Write(value);
            }

            var firstField = true;

            foreach (var field in desciptor.Fields)
            {
                if (firstField == true)
                {
                    firstField = false;
                    writer.WriteSpace();
                }
                else
                {
                    writer.WriteComma();
                }

                var value = field.GetStringValue(entity);
                writer.Write(field.Utf8Name).WriteEqual().Write(value);
            }

            if (desciptor.Timestamp != null)
            {
                var timestamp = desciptor.Timestamp.GetStringValue(entity);
                if (timestamp != null)
                {
                    writer.WriteSpace().Write(timestamp);
                }
            }
        }