protected virtual void Route(object sender, EventArgs e) { var context = new HttpContextEx(app.Context); var verdict = GetRouteVerdict(context); if (verdict.IsRoutable) { var controlPoint = GetRoot(context); var message = new Message(context); try { var segments = verdict.Segments; if (segments.Length > 0) { int index = 0; if (segments[0] == "x" && segments.Length > 1) { controlPoint = new ClosureControlPoint(segments[1]); index = 1; } for (var i = index; i < segments.Length; i++) { message.message = segments[i]; controlPoint = controlPoint.Next(message) ?? TranslateNull(context); } } context.RemapHandler(controlPoint.GetRepresentation(context)); } catch (WebException ex) { var handler = ex.GetHandler(context); if (handler != null) context.RemapHandler(handler); else throw; } } }
public override AppState Next(Message msg) { return get_controlPoint != null ? get_controlPoint(msg) : null; }
public abstract AppState Next(Message msg);
public AppState Next(Message msg) { return null; }
public AppState Next(Message msg) { //here we ignore the msg parameter because we want guaranteed case sensitivity return Session.Retrieve(key); }
public AppState Next(Message msg) { return this; }