public void CompressResponse()
{
if (Nodes == null || Nodes.Count == 0)
{
return;
}
MemoryStream nodeCollectionXml = null;
MemoryStream compressedNodeCollectionStream = null;
ZlibStream zipStream = null;
try
{
nodeCollectionXml = new MemoryStream();
DataContractSerializer serializer = new DataContractSerializer(typeof(CompressedResponseTuple));
CompressedResponseTuple responseTuple = new CompressedResponseTuple();
responseTuple.Nodes = Nodes;
responseTuple.Relationships = Relationships;
serializer.WriteObject(nodeCollectionXml, responseTuple);
byte[] metadataCollectionBytes = nodeCollectionXml.ToArray();
compressedNodeCollectionStream = new MemoryStream();
using (zipStream = new ZlibStream(compressedNodeCollectionStream, CompressionMode.Compress))
{
zipStream.Write(metadataCollectionBytes, 0, metadataCollectionBytes.Length);
}
byte[] compressedMetadataCollectionBytes = compressedNodeCollectionStream.ToArray();
CompressedNodeData = Convert.ToBase64String(compressedMetadataCollectionBytes);
Nodes.Clear();
Relationships.Clear();
}
finally
{
if (nodeCollectionXml != null)
{
nodeCollectionXml.Dispose();
nodeCollectionXml = null;
}
}
}