public void SerializeDeserializeComplexMessage()
 {
     var dtoMsg = new MessageDtoModelV1(ComplexMessage);
     var json = JsonSerializer.SerializeToString(dtoMsg);
     var dtoMsg2 = JsonSerializer.DeserializeFromString<MessageDtoModelV1>(json);
     Assert.AreEqual(dtoMsg.ToMessage(), dtoMsg2.ToMessage());
     Assert.AreEqual(ComplexMessage, dtoMsg.ToMessage());
     Assert.AreEqual(ComplexMessage, dtoMsg2.ToMessage());
 }
Beispiel #2
0
        static void Copy(string sourceFile, string sourceFormat,
                         string destinationFile, string destinationFormat)
        {
            if (String.IsNullOrEmpty(sourceFile)) {
                throw new ArgumentException(_("sourceFile must not be empty."));
            }

            IMessageBuffer sourceBuffer = null, destinationBuffer = null;
            try {
                var sourceBufferType = ParseMessageBufferType(sourceFile, sourceFormat);
                sourceBuffer = CreateMessageBuffer(sourceFile, sourceBufferType);

                if (!String.IsNullOrEmpty(destinationFile)) {
                    var destinationBufferType = ParseMessageBufferType(destinationFile,
                                                                       destinationFormat);
                    destinationBuffer = CreateMessageBuffer(destinationFile,
                                                            destinationBufferType);
                    if (destinationBuffer.Count > 0) {
                        throw new InvalidOperationException(
                            String.Format(
                                _("Destination database {0} must be empty!"),
                                destinationFile
                            )
                        );
                    }
                }

                if (destinationBuffer == null) {
                    // JSON pipe
                    Console.WriteLine("[");
                    var msgCount = sourceBuffer.Count;
                    var i = 0;
                    foreach (var msg in sourceBuffer) {
                        var dto = new MessageDtoModelV1(msg);
                        var json = JsonSerializer.SerializeToString(dto);
                        if (i++ < msgCount - 1) {
                            Console.WriteLine("{0},", json);
                        } else {
                            Console.WriteLine(json);
                        }
                    }
                    if (destinationBuffer == null) {
                        Console.WriteLine("]");
                    }
                } else {
                    foreach (var msg in sourceBuffer) {
                        destinationBuffer.Add(msg);
                    }
                    destinationBuffer.Flush();
                }
            } finally {
                if (sourceBuffer != null) {
                    sourceBuffer.Dispose();
                }
                if (destinationBuffer != null) {
                    destinationBuffer.Dispose();
                }
            }
        }
 public void SerializeDeserializeOnlyQuoteBug()
 {
     var msgWithOnlyQuote = new MessageBuilder().
         AppendText("\"").
         ToMessage();
     var dtoMsg = new MessageDtoModelV1(msgWithOnlyQuote);
     var json = JsonSerializer.SerializeToString(dtoMsg);
     var dtoMsg2 = JsonSerializer.DeserializeFromString<MessageDtoModelV1>(json);
     Assert.AreEqual(dtoMsg.ToMessage(), dtoMsg2.ToMessage());
 }
Beispiel #4
0
        public override void Add(MessageModel msg)
        {
            if (msg == null) {
                throw new ArgumentNullException("msg");
            }

            if (MaxCapacity > 0 && MessageCount >= MaxCapacity) {
                RemoveAt(0);
            }

            var dto = new MessageDtoModelV1(msg);
            var json = JsonSerializer.SerializeToString(dto);

            using (var cmd = Connection.CreateCommand()) {
                cmd.CommandText = "INSERT INTO Messages (JSON)" +
                                  " VALUES(@json)";
                var param = cmd.CreateParameter();
                param.ParameterName = "json";
                param.Value = json;
                cmd.Parameters.Add(param);

                cmd.ExecuteNonQuery();
            }
            MessageCount++;
        }
 public void ToMessageNreBug()
 {
     var dtoMsg = new MessageDtoModelV1();
     var msg = dtoMsg.ToMessage();
     Assert.True(msg.IsEmpty);
 }