public CallbackModule(TinyIoCContainer container) { var phoneNumber = container.Resolve <string>("phoneNumber"); //home page (to show phone number to call) Get["/"] = p => string.Format("Call to {0}", phoneNumber); //catapult callback handler Post["/callback", true] = async(p, c) => { using (var reader = new StreamReader(Request.Body, Encoding.UTF8)) { try { dynamic ev = BaseEvent.CreateFromString(await reader.ReadToEndAsync()); Trace.WriteLine("Came event " + ((BaseEvent)ev).EventType, "Callback"); await ProcessEvent(ev, container); } catch (Exception ex) { Trace.WriteLine(string.Format("{0} - {1}", Request.Url, ex.Message), "CallbackError"); } return(HttpStatusCode.OK); } }; }
public async Task <ActionResult> PostCatapultFromCallback() { try { using (var reader = new StreamReader(Request.InputStream, Encoding.UTF8)) { var json = await reader.ReadToEndAsync(); Debug.WriteLine("CatapultFromCallback:" + json); dynamic ev = BaseEvent.CreateFromString(json); await ProcessCatapultFromEvent(ev); } } catch (Exception ex) { Debug.WriteLine(string.Format("CatapultFromCallback error: {0}", ex.Message)); } return(Json(new object())); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { try { using (var reader = new StreamReader(filterContext.RequestContext.HttpContext.Request.InputStream, Encoding.UTF8)) { var json = reader.ReadToEnd(); var ev = BaseEvent.CreateFromString(json); filterContext.Controller.ViewBag.Event = ev; } } catch (Exception ex) { Debugger.Log(0, "Error", ex.Message); filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Malformed event"); return; } base.OnActionExecuting(filterContext); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { try { using (var reader = new StreamReader(filterContext.RequestContext.HttpContext.Request.InputStream, Encoding.UTF8)) { var json = reader.ReadToEnd(); var ev = BaseEvent.CreateFromString(json); var pi = ev.GetType().GetProperty("CallId"); if (pi != null) { var call = new Call { Id = (string)pi.GetValue(ev) }; var activeCall = filterContext.RequestContext.HttpContext.GetOwinContext() .Get <ApplicationDbContext>() .ActiveCalls.Find(call.Id); if (activeCall != null) { filterContext.Controller.ViewBag.User = activeCall.User; } filterContext.Controller.ViewBag.Call = call; } filterContext.Controller.ViewBag.Event = ev; } } catch (Exception ex) { Debugger.Log(0, "Error", ex.Message); Trace.WriteLine(ex.Message, "Error"); filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Malformed event"); return; } base.OnActionExecuting(filterContext); }