/// <summary>
        /// 
        /// </summary>
        /// <param name="content"></param>
        /// <param name="contentEncoding"></param>
        /// <param name="rawRead"></param>
        /// <param name="bufferSize"></param>
        /// <returns></returns>
        public static byte[] DeCompressContent(byte[] content, string contentEncoding, byte[] rawRead, int bufferSize)
        {
            using (MemoryStream inputStream = new MemoryStream(content))
            {
                // read in and convert gzipped content compressed content and then fix it up
                using (CompressedStream deCompressStream = new CompressedStream(contentEncoding, inputStream, CompressionMode.Decompress))
                {
                    using (MemoryStream outputSteam = new MemoryStream())
                    {
                        int bytes;
                        do
                        {
                            bytes = deCompressStream.Read(rawRead, 0, bufferSize);
                            if (bytes != 0)
                                outputSteam.Write(rawRead, 0, bytes);
                        }
                        while (bytes != 0);
                        outputSteam.Flush();

                        return outputSteam.ToArray();
                    }
                }
            }
        }