Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
 public override AppState Next(Message msg)
 {
     return get_controlPoint != null ? get_controlPoint(msg) : null;
 }
Esempio n. 3
0
 public abstract AppState Next(Message msg);
Esempio n. 4
0
 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);
        }
Esempio n. 6
0
 public AppState Next(Message msg)
 {
     return this;
 }