/// <summary> /// <para>Indicates whether compression is possible in the HttpContext.</para> /// </summary> /// <param name="context"> /// <para>HttpContext to check.</para> /// </param> /// <param name="compType"> /// <para>Compression type.</para> /// </param> /// <returns> /// <para>true if allow.</para> /// </returns> public static bool AllowCompressionMtn(this HttpContext context, Mtn.Library.Enums.CompressionType compType) { string isOkToCompress = context.Request.Headers["Accept-Encoding"]; Stream io = context.Response.Filter; if (isOkToCompress == null) { return(false); } if (isOkToCompress.ToLower().Contains(compType.ToString().ToLower()) == false) { return(false); } if (io == null) { io = context.Response.OutputStream; } context.Response.Filter = new CompressionStream(io, compType); context.Response.AppendHeader("Content-Encoding", compType.ToString().ToLower()); return(true); }
/// <summary> /// Constructor /// </summary> /// <param name="baseStream"> /// <para>Represents the stream to compression.</para> /// </param> /// <param name="compType"> /// <para>Compression type.</para> /// </param> public CompressionStream(System.IO.Stream baseStream, Mtn.Library.Enums.CompressionType compType) { if (compType == Mtn.Library.Enums.CompressionType.GZip) { this._mIo = new GZipStream(baseStream, CompressionMode.Compress); } else { this._mIo = new DeflateStream(baseStream, CompressionMode.Compress); } }