public async Task <TransportMessage> Serialize(Message message) { var transportMessage = await _serializer.Serialize(message); var body = transportMessage.Body; if (body.Length < _bodySizeThresholdBytes) { return(transportMessage); } var headers = transportMessage.Headers.Clone(); var compressedBody = _zipper.Zip(transportMessage.Body); headers[Headers.ContentEncoding] = GzipEncodingHeader; var compressedTransportMessage = new TransportMessage(headers, compressedBody); return(compressedTransportMessage); }
void PossiblyCompressTransportMessage(OutgoingStepContext context) { var transportMessage = context.Load <TransportMessage>(); if (transportMessage.Body == null) { return; } if (transportMessage.Body.Length < _bodySizeThresholdBytes) { return; } var headers = transportMessage.Headers.Clone(); var compressedBody = _zipper.Zip(transportMessage.Body); headers[Headers.ContentEncoding] = GzipEncodingHeader; var compressedTransportMessage = new TransportMessage(headers, compressedBody); context.Save(compressedTransportMessage); }