private async Task <ParsedCallingRequest> ProcessRequestAsync() { try { if (Request.Content == null) { Trace.TraceError("No content in the request"); return(CallingContext.GenerateParsedResults(HttpStatusCode.BadRequest)); } var content = await Request.Content.ReadAsStringAsync().ConfigureAwait(false); return(CallingContext.GenerateParsedResults(HttpStatusCode.OK, content)); } catch (Exception e) { Trace.TraceError($"Failed to process the notification request, exception: {e}"); return(CallingContext.GenerateParsedResults(HttpStatusCode.InternalServerError, e.ToString())); } }
/// <summary> /// Process the calling request and returns <see cref="ParsedCallingRequest"/>. /// </summary> /// <param name="callType"> The type of request.</param> /// <returns> The parsed request.</returns> public virtual async Task <ParsedCallingRequest> ProcessRequest(RealTimeMediaCallRequestType callType) { ParsedCallingRequest parsedRequest; switch (callType) { case RealTimeMediaCallRequestType.IncomingCall: case RealTimeMediaCallRequestType.CallingEvent: case RealTimeMediaCallRequestType.NotificationEvent: parsedRequest = await ProcessRequestAsync(); break; default: parsedRequest = CallingContext.GenerateParsedResults(HttpStatusCode.BadRequest, $"{callType} not accepted"); break; } parsedRequest.SkypeChainId = CallingContext.ExtractSkypeChainId(this.Request); return(parsedRequest); }