public async Task <Schema.ResourceResponse> SendActivityAsync(Schema.Activity activity, List <AttachmentStream> attachmentStreams = null) { SentActivities.Add(activity); var requestPath = $"/v3/conversations/{activity.Conversation?.Id}/activities/{activity.Id}"; var request = StreamingRequest.CreatePost(requestPath); request.SetBody(activity); attachmentStreams?.ForEach(a => { var streamContent = new StreamContent(a.ContentStream); streamContent.Headers.TryAddWithoutValidation(HeaderNames.ContentType, a.ContentType); request.AddStream(streamContent); }); var serverResponse = await _adapter.ProcessStreamingActivityAsync(activity, OnTurnAsync, CancellationToken.None).ConfigureAwait(false); if (serverResponse.Status == (int)HttpStatusCode.OK) { return(JsonConvert.DeserializeObject <Schema.ResourceResponse>(serverResponse.Body.ToString())); } throw new Exception("SendActivityAsync failed"); }