System.Web.Mvc.LocalizedMvcRouteHandler.GetHttpHandler C# (CSharp) Method

GetHttpHandler() protected method

Initializes the thread culture based on the current requested language
protected GetHttpHandler ( System.Web.Routing.RequestContext requestContext ) : IHttpHandler
requestContext System.Web.Routing.RequestContext
return IHttpHandler
        protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            var language = requestContext.RouteData.Values["language"] as string;
            if (!string.IsNullOrWhiteSpace(language)
                && (!LocalizationAppConfig.SupportedLanguages.Any() || LocalizationAppConfig.SupportedLanguages.Contains(language, StringComparer.OrdinalIgnoreCase)))
                try
                {
                    var request =requestContext.HttpContext.Request;
                    if (request.Url.PathAndQuery.StartsWith(FormsAuthentication.LoginUrl, StringComparison.OrdinalIgnoreCase))
                    {
                        var returnUrl = request.QueryString["returnUrl"];
                        if (!string.IsNullOrWhiteSpace(returnUrl))
                        {
                            var routeInfo = new RouteInfo(new Uri(request.Url, returnUrl), HttpContext.Current.Request.ApplicationPath);
                            var returnUrlLanguage = routeInfo.RouteData.Values["language"] as string;
                            language = string.IsNullOrWhiteSpace(returnUrlLanguage) ? language : returnUrlLanguage;
                        }
                    }
                    if (language == "lib" || language == "css")
                        requestContext.RouteData.Values["language"] = language = "en";
                    var cultureInfo = CultureInfo.CreateSpecificCulture(language);
                    if (cultureInfo != null)
                    {

                        Thread.CurrentThread.CurrentUICulture = cultureInfo;
                        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureInfo.Name);
                    }
                }
                catch
                {
                    //if invalid culture, do nothing
                }

            return base.GetHttpHandler(requestContext);
        }
LocalizedMvcRouteHandler