public DatabaseInstanceResponder(HttpRequest request)
     : base(request)
 {
     var match = databaseRegex.Match(request.Path);
     if (match.Success)
     {
         id = int.Parse(match.Groups[1].Value);
         query = match.Groups[2].Value;
         if (match.Groups[3].Success)
         {
             id2 = int.Parse(match.Groups[4].Value);
             query2 = match.Groups[5].Value;
         }
     }
     else
     {
         match = databaseRegex2.Match(request.Path);
         if (match.Success)
         {
             id = int.Parse(match.Groups[1].Value);
             query = "browse";
             query2 = match.Groups[2].Value;
         }
         else
             throw new ArgumentException("Not a valid request for this responder", "request");
     }
 }
        protected SessionBoundResponder(HttpRequest request)
            : base(request)
        {
            var sessionIdStr = request.QueryString["session-id"];
            if (string.IsNullOrEmpty(sessionIdStr))
                throw new ArgumentException("Session ID is required for this type of request", "request");

            SessionId = int.Parse(sessionIdStr);

            Session = SessionManager.GetSession(SessionId);
        }
示例#3
0
        public static IResponder Map(HttpRequest request)
        {
            if (request == null) return null;

            if (request.Path == "/server-info")
            {
                return new ServerInfoResponder(request);
            }
            else if (request.Path == "/login")
            {
                return new LoginResponder(request);
            }
            else if (request.Path == "/logout")
            {
                return new LogoutResponder(request);
            }
            else if (request.Path == "/fp-setup")
            {
                return new FpSetupResponder(request);
            }
            else if (request.Path == "/update")
            {
                return new UpdateResponder(request);
            }
            else if (request.Path == "/databases")
            {
                return new DatabasesResponder(request);
            }
            else if (request.Path.StartsWith("/databases/"))
            {
                return new DatabaseInstanceResponder(request);
            }
            else if (request.Path == "/ctrl-int")
            {
                return new CtrlIntResponder(request);
            }
            else if (request.Path.StartsWith("/ctrl-int/"))
            {
                return new CtrlIntInstanceResponder(request);
            }

            // no handler :(
            return null;
        }
 public ServerInfoResponder(HttpRequest request)
     : base(request)
 {
 }
示例#5
0
 protected Responder(HttpRequest request)
 {
     Request = request;
 }
 public DatabasesResponder(HttpRequest request)
     : base(request)
 {
 }
 public UpdateResponder(HttpRequest request)
     : base(request)
 {
 }
 public CtrlIntResponder(HttpRequest request)
     : base(request)
 {
 }
 public LogoutResponder(HttpRequest request)
     : base(request)
 {
 }