TransactionalNodeService.Common.QueryResponse.CompressResponse C# (CSharp) Méthode

CompressResponse() public méthode

public CompressResponse ( ) : void
Résultat void
        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;
                }
            }
        }