public void ToMessageNreBug() { var dtoMsg = new MessageDtoModelV1(); var msg = dtoMsg.ToMessage(); Assert.True(msg.IsEmpty); }
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++; }
static void WriteMessagesToJson(IEnumerable <MessageModel> messages, TextWriter writer) { // OPT: if you are wondering why this code is handling the // serialization of JSON list manually instead of passing it as a // List<T> in a single method call to JsonSerializer.SerializeToWriter(dtoMessages) // then this is because it would mean that all messages from the // source message buffer would need to be read completely into // memory before serializing it into JSON and then writing the result // of that to the console or file. Instead this is a read one message // from the message buffer, copy it to a DTO object, serialize that // one message to JSON and then write that single JSON object to the // target which is a TextWriter. writer.Write("["); bool first = true; foreach (var message in messages) { if (first) { first = false; } else { writer.Write(","); } var dtoMessage = new MessageDtoModelV1(message); JsonSerializer.SerializeToWriter(dtoMessage, writer); } writer.WriteLine("]"); writer.Flush(); }
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()); }
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()); }
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(); } } }