TeamMentor.CoreLib.ScriptCombiner.ProcessRequest C# (CSharp) Method

ProcessRequest() public method

public ProcessRequest ( HttpContext httpContext ) : void
httpContext System.Web.HttpContext
return void
        public void ProcessRequest(HttpContext httpContext)
        {
            context = HttpContextFactory.Current;
            apiScriptCombiner.baseFolder = context.Server.MapPath("/");
            var request = context.Request;
            var response = context.Response;
            response.Clear();

            if (TMConfig.Current.enable304Redirects() && context.sent304Redirect())
                return;
            try
            {

                apiScriptCombiner.minifyCode = true;
                apiScriptCombiner.ignoreCache = true;
                if (request.QueryString["Hello"]=="TM")
                {
                    response.Write("Good Morning");
                    return;
                }

                // Read setName, version from query string
                apiScriptCombiner.setName = XssEncoder.UrlEncode(request.QueryString["s"]) ?? string.Empty;
                apiScriptCombiner.version = XssEncoder.UrlEncode(request.QueryString["v"]) ?? string.Empty;

                if (apiScriptCombiner.setName ==string.Empty)
                {
                    response.Write("//nothing to do");
                    return;
                }

                if (request.QueryString["dontMinify"] == "true")
                    apiScriptCombiner.minifyCode = false;

                switch(request.QueryString["ct"])
                {
                    case "css":
                        apiScriptCombiner.contentType = "text/css";
                        apiScriptCombiner.minifyCode = false;
                        break;
                    default:
                        apiScriptCombiner.contentType = "application/x-javascript";
                        break;
                }
                // Decide if browser supports compressed response
                apiScriptCombiner.isCompressed = CanGZip(context.Request);

                apiScriptCombiner.CombineFiles();
                var responseBytes = apiScriptCombiner.CombinedBytes;
                var isCompressed  = apiScriptCombiner.isCompressed;
                var contentType   = apiScriptCombiner.contentType;
                WriteBytes(responseBytes, isCompressed,contentType);
            }
            catch(Exception ex)
            {
                ex.log();
                response.Write("//Error processing request"+  ex.Message);
                response.End();
            }
        }

Usage Example

        public void serverCode_defaultValues_and_EmptyRequest()
        {
            var scriptCombiner = new ScriptCombiner();
            scriptCombiner.ProcessRequest(null);

            Assert.AreEqual	(scriptCombiner.apiScriptCombiner.setName,string.Empty , "[empty request] setName");
            Assert.AreEqual	(scriptCombiner.apiScriptCombiner.version,string.Empty , "[empty request] version");
            Assert.IsNotNull(scriptCombiner.apiScriptCombiner.MappingsLocation	 , "[empty request] mappingsLocation");

            var responseHtml = context.response_Read_All();
            Assert.AreEqual(EMPTY_RESPONSE,responseHtml, "[empty request] responseHtml should be empty");

            request.QueryString["s"] = "setName";
            request.QueryString["v"] = "version";
            scriptCombiner.ProcessRequest(null);
            Assert.AreEqual(scriptCombiner.apiScriptCombiner.setName,"setName", "setName value");
            Assert.AreEqual(scriptCombiner.apiScriptCombiner.version,"version", "setName value");
            responseHtml = context.response_Read_All();
            Assert.AreEqual(responseHtml, "othing to do");
            //test test handshake
            request.QueryString["Hello"] = "TM";
            scriptCombiner.ProcessRequest(null);
            responseHtml = context.response_Read_All();
            Assert.AreEqual(responseHtml, "othing to doGood Morning", "handshake");
        }
All Usage Examples Of TeamMentor.CoreLib.ScriptCombiner::ProcessRequest