diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.csproj b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.csproj index 50ea43467c..2d6abb9caf 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.csproj +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.csproj @@ -1,13 +1,12 @@  - 4.0.0-local $(PackageVersion) 4.0.0-local $(PackageVersion) Debug;Release;Documentation;Debug - NuGet Packages; + 7.1 - netstandard2.0 Microsoft.Bot.Builder.Skills @@ -15,55 +14,35 @@ Microsoft Microsoft Shared library for building Bot Framework Skills. - - https://botbuilder.myget.org/F/experimental/api/v3/index.json; - - true - true true ..\..\build\35MSSharedLib1024.snk false - - + - - - - - - - - - - + + + + + + + + - - + - - - - Dependencies\Microsoft.Bot.Protocol.dll - - - Dependencies\Microsoft.Bot.Protocol.WebSockets.dll - - - TextTemplatingFileGenerator SkillResponses.cs - True @@ -71,5 +50,4 @@ SkillResponses.tt - - + \ No newline at end of file diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.nuspec b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.nuspec index 5f48ba341a..2d075f8b5c 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.nuspec +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Microsoft.Bot.Builder.Skills.nuspec @@ -17,8 +17,6 @@ - - diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteAction.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteAction.cs index b156f453ee..8b5fb3625d 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteAction.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteAction.cs @@ -1,6 +1,6 @@ using System; using System.Threading.Tasks; -using Microsoft.Bot.Protocol; +using Microsoft.Bot.StreamingExtensions; namespace Microsoft.Bot.Builder.Skills.Protocol { diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteContext.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteContext.cs index d121581d6f..e7093c6bc4 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteContext.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/RouteContext.cs @@ -1,4 +1,4 @@ -using Microsoft.Bot.Protocol; +using Microsoft.Bot.StreamingExtensions; namespace Microsoft.Bot.Builder.Skills.Protocol { diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/Router.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/Router.cs index ac0e37c09a..7ebf797ad3 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/Router.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/Protocol/Router.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Dynamic; using System.Linq; -using Microsoft.Bot.Protocol; +using Microsoft.Bot.StreamingExtensions; namespace Microsoft.Bot.Builder.Skills.Protocol { diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillCallingRequestHandler.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillCallingRequestHandler.cs index 1ff898e6b7..d256f82076 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillCallingRequestHandler.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillCallingRequestHandler.cs @@ -1,11 +1,12 @@ using System; using System.Net.Http; using System.Text; +using System.Threading; using System.Threading.Tasks; using Microsoft.Bot.Builder.Skills.Protocol; using Microsoft.Bot.Builder.Solutions; -using Microsoft.Bot.Protocol; using Microsoft.Bot.Schema; +using Microsoft.Bot.StreamingExtensions; using Microsoft.Extensions.Logging; using Newtonsoft.Json; @@ -37,7 +38,7 @@ public SkillCallingRequestHandler(ITurnContext turnContext, IBotTelemetryClient Action = async (request, routeData) => { - var activity = await request.ReadBodyAsJson().ConfigureAwait(false); + var activity = request.ReadBodyAsJson(); if (activity != null) { if (activity.Type == ActivityTypes.Event && activity.Name == TokenEvents.TokenRequestEventName) @@ -88,8 +89,8 @@ public SkillCallingRequestHandler(ITurnContext turnContext, IBotTelemetryClient Action = async (request, routeData) => { - var activity = await request.ReadBodyAsJson().ConfigureAwait(false); - var result = _turnContext.UpdateActivityAsync(activity).ConfigureAwait(false); + var activity = request.ReadBodyAsJson(); + var result = await _turnContext.UpdateActivityAsync(activity).ConfigureAwait(false); return result; }, }, @@ -103,7 +104,7 @@ public SkillCallingRequestHandler(ITurnContext turnContext, IBotTelemetryClient Action = async (request, routeData) => { - var result = await _turnContext.DeleteActivityAsync(routeData.activityId); + var result = await _turnContext.DeleteActivityAsync(routeData.activityId).ConfigureAwait(false); return result; }, }, @@ -113,7 +114,7 @@ public SkillCallingRequestHandler(ITurnContext turnContext, IBotTelemetryClient _router = new Router(routes); } - public override async Task ProcessRequestAsync(ReceiveRequest request, object context = null, ILogger logger = null) + public override async Task ProcessRequestAsync(ReceiveRequest request, ILogger logger, object context = null, CancellationToken cancellationToken = default) { var routeContext = _router.Route(request); if (routeContext != null) @@ -121,17 +122,17 @@ public override async Task ProcessRequestAsync(ReceiveRequest request, try { var responseBody = await routeContext.Action.Action(request, routeContext.RouteData).ConfigureAwait(false); - return Response.OK(new StringContent(JsonConvert.SerializeObject(responseBody, SerializationSettings.DefaultSerializationSettings), Encoding.UTF8, SerializationSettings.ApplicationJson)); + return StreamingResponse.OK(new StringContent(JsonConvert.SerializeObject(responseBody, SerializationSettings.DefaultSerializationSettings), Encoding.UTF8, SerializationSettings.ApplicationJson)); } catch (Exception ex) { _botTelemetryClient.TrackException(ex); - return Response.InternalServerError(); + return StreamingResponse.InternalServerError(); } } else { - return Response.NotFound(); + return StreamingResponse.NotFound(); } } } diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketAdapter.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketAdapter.cs index faf70896d0..7e959e2b4a 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketAdapter.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketAdapter.cs @@ -7,7 +7,8 @@ using Microsoft.AspNetCore.Http; using Microsoft.Bot.Builder.Integration.AspNet.Core; using Microsoft.Bot.Builder.Skills.Auth; -using Microsoft.Bot.Protocol.WebSockets; +using Microsoft.Bot.StreamingExtensions.Transport; +using Microsoft.Bot.StreamingExtensions.Transport.WebSockets; namespace Microsoft.Bot.Builder.Skills { @@ -90,7 +91,7 @@ private async Task CreateWebSocketConnectionAsync(HttpContext httpContext, IBot Task.WaitAll(startListening); } - private void Server_Disconnected(object sender, Bot.Protocol.Transport.DisconnectedEventArgs e) + private void Server_Disconnected(object sender, DisconnectedEventArgs e) { if (_stopWatch.IsRunning) { diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketBotAdapter.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketBotAdapter.cs index e7d937f8c2..1d202939d6 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketBotAdapter.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketBotAdapter.cs @@ -4,9 +4,9 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Bot.Builder.Solutions; -using Microsoft.Bot.Protocol; -using Microsoft.Bot.Protocol.WebSockets; using Microsoft.Bot.Schema; +using Microsoft.Bot.StreamingExtensions; +using Microsoft.Bot.StreamingExtensions.Transport.WebSockets; using Diagnostics = System.Diagnostics; namespace Microsoft.Bot.Builder.Skills @@ -121,7 +121,7 @@ public override async Task SendActivitiesAsync(ITurnContext (activity.Type == ActivityTypes.Trace && activity.ChannelId == "emulator")) { var requestPath = $"/activities/{activity.Id}"; - var request = Request.CreatePost(requestPath); + var request = StreamingRequest.CreatePost(requestPath); request.SetBody(activity); _botTelemetryClient.TrackTrace($"Sending activity. ReplyToId: {activity.ReplyToId}", Severity.Information, null); @@ -168,7 +168,7 @@ public override async Task SendActivitiesAsync(ITurnContext public override async Task UpdateActivityAsync(ITurnContext turnContext, Activity activity, CancellationToken cancellationToken) { var requestPath = $"/activities/{activity.Id}"; - var request = Request.CreatePut(requestPath); + var request = StreamingRequest.CreatePut(requestPath); request.SetBody(activity); var response = default(ResourceResponse); @@ -199,7 +199,7 @@ public override async Task UpdateActivityAsync(ITurnContext tu public override async Task DeleteActivityAsync(ITurnContext turnContext, ConversationReference reference, CancellationToken cancellationToken) { var requestPath = $"/activities/{reference.ActivityId}"; - var request = Request.CreateDelete(requestPath); + var request = StreamingRequest.CreateDelete(requestPath); _botTelemetryClient.TrackTrace($"Deleting activity. activity id: {reference.ActivityId}", Severity.Information, null); @@ -232,7 +232,7 @@ public async Task SendRemoteTokenRequestEventAsync(ITurnContext turnContext, Can await SendActivitiesAsync(turnContext, new Activity[] { response }, cancellationToken).ConfigureAwait(false); } - private async Task SendRequestAsync(Request request, CancellationToken cancellation = default(CancellationToken)) + private async Task SendRequestAsync(StreamingRequest request, CancellationToken cancellation = default(CancellationToken)) { try { @@ -253,7 +253,7 @@ public async Task SendRemoteTokenRequestEventAsync(ITurnContext turnContext, Can return default(T); } - private async Task SendRequestAsync(Request request, CancellationToken cancellation = default(CancellationToken)) + private async Task SendRequestAsync(StreamingRequest request, CancellationToken cancellation = default(CancellationToken)) { try { diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketRequestHandler.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketRequestHandler.cs index c636059513..d5860cba5a 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketRequestHandler.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketRequestHandler.cs @@ -5,8 +5,8 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Bot.Builder.Solutions; -using Microsoft.Bot.Protocol; using Microsoft.Bot.Schema; +using Microsoft.Bot.StreamingExtensions; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Diagnostics = System.Diagnostics; @@ -28,7 +28,7 @@ internal SkillWebSocketRequestHandler(IBotTelemetryClient botTelemetryClient) public IActivityHandler SkillWebSocketBotAdapter { get; set; } - public async override Task ProcessRequestAsync(ReceiveRequest request, object context = null, ILogger logger = null) + public async override Task ProcessRequestAsync(ReceiveRequest request, ILogger logger = null, object context = null, CancellationToken cancellationToken = default(CancellationToken)) { if (Bot == null) { @@ -40,9 +40,9 @@ public async override Task ProcessRequestAsync(ReceiveRequest request, throw new ArgumentNullException(nameof(SkillWebSocketBotAdapter)); } - var response = new Response(); + var response = new StreamingResponse(); - var body = await request.ReadBodyAsString().ConfigureAwait(false); + var body = request.ReadBodyAsString(); if (string.IsNullOrEmpty(body) || request.Streams?.Count == 0) { @@ -51,7 +51,7 @@ public async override Task ProcessRequestAsync(ReceiveRequest request, return response; } - if (request.Streams.Where(x => x.Type != "application/json; charset=utf-8").Any()) + if (request.Streams.Where(x => x.ContentType != "application/json; charset=utf-8").Any()) { response.StatusCode = (int)HttpStatusCode.NotAcceptable; return response; diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketTransport.cs b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketTransport.cs index 685018ddbe..89d953df88 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketTransport.cs +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills/SkillWebSocketTransport.cs @@ -7,10 +7,10 @@ using Microsoft.Bot.Builder.Skills.Models; using Microsoft.Bot.Builder.Skills.Models.Manifest; using Microsoft.Bot.Connector.Authentication; -using Microsoft.Bot.Protocol; -using Microsoft.Bot.Protocol.Transport; -using Microsoft.Bot.Protocol.WebSockets; using Microsoft.Bot.Schema; +using Microsoft.Bot.StreamingExtensions; +using Microsoft.Bot.StreamingExtensions.Transport; +using Microsoft.Bot.StreamingExtensions.Transport.WebSockets; using Newtonsoft.Json; namespace Microsoft.Bot.Builder.Skills @@ -66,7 +66,7 @@ public async Task ForwardToSkillAsync(ITurnContext turnContext, Activity a // Serialize the activity and POST to the Skill endpoint var body = new StringContent(JsonConvert.SerializeObject(activity, SerializationSettings.BotSchemaSerializationSettings), Encoding.UTF8, SerializationSettings.ApplicationJson); - var request = Request.CreatePost(string.Empty, body); + var request = StreamingRequest.CreatePost(string.Empty, body); // set back recipient id to make things consistent activity.Recipient.Id = recipientId;