private ActionResult Execute(string url, string rule) { _context.SetupGet(c => c.Request.Url).Returns(new Uri(url)); _context.SetupGet(c => c.Request.ApplicationPath).Returns(_rewriteBase); 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)); }
public void OnActionExecuting(ActionExecutingContext filterContext) { var settings = _rewriteRulesService.GetSettings(); if (!settings.IsEnabled || string.IsNullOrWhiteSpace(settings.Rules)) { 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); } }