Esempio n. 1
0
        internal OnExitCode RedirectToHttpHandler(Socket clientSocket)
        {
            var strReceived = this.ParseReqString(clientSocket, 10240);

            if (strReceived.Contains("stop" + secretToken))
            {
                return(OnExitCode.OnStop);
            }

            HttpStringParser httpMsgParser = new HttpStringParser(strReceived);

            if (strReceived.Equals("") || string.IsNullOrEmpty(strReceived))
            {
                return(OnExitCode.OnNormalExit);
            }


            bool isHavingRoute = httpMsgParser.HavingRoute(stateless, stateful) && httpMsgParser.IsCorrectUrl();

            if (httpMsgParser.IsCorrect(new string[] { "GET", "POST" }))
            {
                var requestedUrl = "/" + redirectionMap["DefaultRedirectPage"];
                if (isHavingRoute)
                {
                    requestedUrl = httpMsgParser.GetRequestedFile();
                }

                var controller = FindAndGetInstance(requestedUrl);


                ResponseHandler handler = new ResponseHandler(clientSocket, controller, requestedUrl, logger);

                handler.SetRedirectionMapWithCheckParams(redirectionMap);

                if (isHavingRoute)
                {
                    if (httpMsgParser.IsContainsParams())
                    {
                        var urlParams = httpMsgParser.GetParams();
                        handler.InvokeRouteHandler(urlParams);
                    }
                    else
                    {
                        handler.InvokeRouteHandler();
                    }
                }
                else
                {
                    handler.RedirectToDefPage();
                }
            }

            return(OnExitCode.OnNormalExit);
        }