public override async Task ProcessRequestAsync()

in libraries/Streaming/DirectLineRequestHandler.cs [29:68]


        public override async Task<StreamingResponse> ProcessRequestAsync(ReceiveRequest request, ILogger<RequestHandler> logger, object context = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (request.Verb == "POST" && request.Path == _postActivitiesPath)
            {
                var activitySet = await ReadOptionalBodyAsJson<ActivitySet>(request).ConfigureAwait(false);

                if (request.Streams.Count > 1)
                {
                    var attachmentDictionary = request.Streams.Skip(1).ToDictionary(a => a.Id);
                    int streamsMappedtoActivitiesCount = 0;
                    foreach (var activity in activitySet.Activities)
                    {
                        if (activity.Attachments == null || activity.Attachments.Count == 0)
                        {
                            continue;
                        }

                        for (int i = 0; i < activity.Attachments.Count(); i++)
                        {
                            if (string.Equals(activity.Attachments[i].ContentType, "bf-stream", StringComparison.InvariantCultureIgnoreCase))
                            {
                                var id = Guid.Parse(activity.Attachments[i].Content.ToString());
                                var stream = attachmentDictionary[id];
                                activity.Attachments[i] = new Attachment() { ContentType = stream.ContentType, Content = stream.Stream };
                                streamsMappedtoActivitiesCount++;
                            }
                        }

                        if (streamsMappedtoActivitiesCount == request.Streams.Count - 1)
                        {
                            break;
                        }
                    }
                }

                _receiveActivities(activitySet);
                return StreamingResponse.OK();
            }
            return StreamingResponse.NotFound();
        }