예제 #1
0
        public static IPublishedContent GetErrorPage(this UmbracoHelper h)
        {
            var errorPage = new umbraco.handle404();

            //providing the URL logs a sensible error message
            errorPage.Execute(h.UmbracoContext.HttpContext.Request.Url.PathAndQuery);
            return(h.TypedContent(errorPage.redirectID));
        }
예제 #2
0
        public bool Execute(string url)
        {
            this.redirectID = 0;

            // Take the umbraco one to assemble the redirect id.
            // (because some things are internal :-(...)
            umbraco.handle404 handler = new umbraco.handle404();

            if (handler.Execute(url))
            {
                this.redirectID = handler.redirectID;

                PublishedContentRequest contentRequest = UmbracoContext.Current.PublishedContentRequest;

                if (contentRequest == null)
                {
                    return(false);
                }

                LocalizedRouting router = new LocalizedRouting(
                    applicationContext: contentRequest.RoutingContext.UmbracoContext.Application,
                    umbracoContext: contentRequest.RoutingContext.UmbracoContext);

                HttpContext context = HttpContext.Current;

                if (context == null)
                {
                    return(false);
                }

                HttpRequestWrapper request = new HttpRequestWrapper(
                    httpRequest: context.Request);

                CultureInfo culture = router.TryGetCultureByRequest(
                    request: request);

                // Set correct culture
                Thread.CurrentThread.CurrentUICulture = culture;
                Thread.CurrentThread.CurrentCulture   = culture;
                contentRequest.Culture = culture;

                // Do the redirect
                return(true);
            }

            return(false);
        }