Пример #1
0
        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);
                }
            };
        }
Пример #2
0
        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);
 }
Пример #4
0
 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);
 }