public void Write(IConfigureCloudQueueMessageEnvelope envelope, JsonWriter writer) { if (envelope == null) throw new ArgumentNullException("envelope"); if (writer == null) throw new ArgumentNullException("writer"); writer.WriteStartObject(); writer.WritePropertyName("From"); writer.WriteValue(envelope.From); writer.WritePropertyName("To"); writer.WriteValue(envelope.To); writer.WritePropertyName("MessageId"); writer.WriteValue(envelope.MessageId); if (envelope.RelatesToMessageId.HasValue) { writer.WritePropertyName("RelatesToMessageId"); writer.WriteValue(envelope.RelatesToMessageId.Value); } writer.WritePropertyName("CorrelationId"); writer.WriteValue(envelope.CorrelationId); writer.WritePropertyName("ContentType"); writer.WriteValue(envelope.ContentType); writer.WritePropertyName("Content"); writer.WriteValue(envelope.Content); writer.WritePropertyName("Time"); writer.WriteValue(envelope.Time); writer.WriteEndObject(); }
private byte[] WriteEnvelopeToContent(IConfigureCloudQueueMessageEnvelope envelope) { using (var stream = new MemoryStream()) { using (var streamWriter = new StreamWriter(stream)) { using (var jsonWriter = new JsonTextWriter(streamWriter)) { QueueWriter.Write(envelope, jsonWriter); jsonWriter.Flush(); return stream.ToArray(); } } } }
public void Send(IConfigureCloudQueueMessageEnvelope envelope) { if (envelope == null) throw new ArgumentNullException("envelope"); var content = WriteEnvelopeToContent(envelope); if (content.Length > Limits.CloudQueueMessageContentLimit) { var blobId = SerialGuid.NewGuid(); BlobWriter.Write(envelope.ToBlobEnvelope(blobId)); envelope = envelope. SetContentType(ContentTypes.BlobReference). SetContent(blobId.ToByteArray()); content = WriteEnvelopeToContent(envelope); } Sender.Send(envelope.To, new CloudQueueMessage(content)); }