public void OnActionExecuting(ActionExecutingContext filterContext) { var settings = _services.WorkContext.CurrentSite.As<RedirectSettingsPart>(); if (settings == null || !settings.Enabled) { return; } try { var interpretter = new RulesInterpreter(_clock); filterContext.Result = interpretter.Interpret(filterContext.HttpContext, settings.Rules) ?? filterContext.Result; } catch(RuleEvaluationException e) { Logger.Error("Rewrite rule evaluation failed for url {0} on rule {1} with message: ", e.Url, e.Rule, e.Message); } }
public ActionResult Simulate(string url, string applicationPath, string rule) { _context.SetupGet(c => c.Request.Url).Returns(new Uri(url)); _context.SetupGet(c => c.Request.ApplicationPath).Returns(applicationPath); var headers = new NameValueCollection(); headers["Host"] = new Uri(url).Host; _context.SetupGet(c => c.Request.UserAgent).Returns(HttpContext.Current.Request.UserAgent); _context.SetupGet(c => c.Request.UrlReferrer).Returns(HttpContext.Current.Request.UrlReferrer); _context.SetupGet(c => c.Request.Headers).Returns(headers); _context.SetupGet(c => c.Request.LogonUserIdentity).Returns(HttpContext.Current.Request.LogonUserIdentity); _context.SetupGet(c => c.Request.HttpMethod).Returns(HttpContext.Current.Request.HttpMethod); var cookies = new HttpCookieCollection(); _context.SetupGet(c => c.Response.Cookies).Returns(cookies); _context.Setup(c => c.Response.SetCookie(It.IsAny <HttpCookie>())).Callback <HttpCookie>(cookies.Set); return(_rulesInterpreter.Interpret(_context.Object, rule)); }