private object routeRequest(IAppController ctrl, string route, HttpContext http) { var request = http.Request; object result; switch (route) { case "/session/init": { var sessionId = request.Require("sessionId"); result = ctrl.Init(sessionId); break; } case "/session/connect": { var sessionId = request.Require("sessionId"); result = ctrl.Connect(sessionId); break; } case "/fb-accepted": { var sessionId = request.Require("state"); var code = request.Require("code"); result = ctrl.ConnectionAccepted(sessionId, code); break; } case "/session/connect/wait": { var sessionId = request.Require("sessionId"); result = ctrl.WaitForConnection(sessionId); break; } case "/session/disconnect": { var sessionId = request.Require("sessionId"); result = ctrl.Disconnect(sessionId); break; } case "/photo/upload": { var sessionId = request.Require("sessionId"); var photo = request.Require <PhotoRqst>(); result = ctrl.UploadPhoto(sessionId, photo, http); break; } case "/post/publish": { var sessionId = request.Require("sessionId"); var post = request.Require <PostRqst>(); result = ctrl.PublishPost(sessionId, post); break; } default: throw new ApplicationException($"Route '{route}' is not found"); } return(result); }