protected async Task <object> ProcessMessageRequestAsync(HttpRequest request, GoogleAdapter GoogleAdapter, BotCallbackHandler botCallbackHandler) { GoogleRequestBody actionRequest; Payload actionPayload; var memoryStream = new MemoryStream(); request.Body.CopyTo(memoryStream); memoryStream.Position = 0; var projectId = AuthenticationHelpers.GetProjectIdFromRequest(request); GoogleAdapter.ActionProjectId = projectId; using (var bodyReader = new StreamReader(memoryStream, Encoding.UTF8)) { var skillRequestContent = bodyReader.ReadToEnd(); try { actionRequest = JsonConvert.DeserializeObject <GoogleRequestBody>(skillRequestContent); actionPayload = actionRequest.OriginalDetectIntentRequest.Payload; } catch { actionPayload = JsonConvert.DeserializeObject <Payload>(skillRequestContent); } } var responseBody = await GoogleAdapter.ProcessActivity( actionPayload, botCallbackHandler); return(responseBody); }
public async Task <HttpResponseMessage> ProcessMessageRequestAsync(HttpRequestMessage request, GoogleAdapter googleAdapter, Func <ITurnContext, Task> botCallbackHandler, CancellationToken cancellationToken) { GoogleRequestBody skillRequest; Payload actionPayload; byte[] requestByteArray; try { requestByteArray = await request.Content.ReadAsByteArrayAsync(); skillRequest = await request.Content.ReadAsAsync <GoogleRequestBody>(googleMessageMediaTypeFormatters, cancellationToken); actionPayload = skillRequest.OriginalDetectIntentRequest.Payload; } catch (Exception) { try { actionPayload = await request.Content.ReadAsAsync <Payload>(googleMessageMediaTypeFormatters, cancellationToken); } catch (Exception e) { throw new JsonSerializationException("Invalid JSON received"); } } var GoogleResponseBody = await googleAdapter.ProcessActivity( actionPayload, _googleOptions, null); if (GoogleResponseBody == null) { return(null); } var GoogleResponseBodyJson = JsonConvert.SerializeObject(GoogleResponseBody, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } }); var response = request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(GoogleResponseBodyJson); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); return(response); }
protected async Task <GoogleResponseBody> ProcessMessageRequestAsync(HttpRequest request, GoogleAdapter googleAdapter, BotCallbackHandler botCallbackHandler) { GoogleRequestBody actionRequest; Payload actionPayload; var memoryStream = new MemoryStream(); request.Body.CopyTo(memoryStream); var requestBytes = memoryStream.ToArray(); memoryStream.Position = 0; using (var bodyReader = new StreamReader(memoryStream, Encoding.UTF8)) { var skillRequestContent = bodyReader.ReadToEnd(); try { actionRequest = JsonConvert.DeserializeObject <GoogleRequestBody>(skillRequestContent); actionPayload = actionRequest.OriginalDetectIntentRequest.Payload; } catch (Exception ex) { try { actionPayload = JsonConvert.DeserializeObject <Payload>(skillRequestContent); } catch (Exception e) { throw; } } } var GoogleResponseBody = await googleAdapter.ProcessActivity( actionPayload, _googleOptions, botCallbackHandler); return(GoogleResponseBody); }