diff --git a/Directory.Build.props b/Directory.Build.props index ad71e73b5..266700541 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -34,8 +34,6 @@ $(SolutionDir)\build\35MSSharedLib1024.snk - true - $(NoWarn),1573,1591,1712 true true @@ -44,11 +42,6 @@ SIGNASSEMBLY - - - $(NoWarn);SA0001 - - https://github.com/Microsoft/botbuilder-dotnet @@ -65,7 +58,7 @@ Suppress a warning about upcoming deprecation of PackageLicenseUrl. When embedding licenses are supported, replace PackageLicenseUrl with PackageLicenseExpression. --> - $(NoWarn);NU5125 + NU5125 true true snupkg diff --git a/FunctionalTests/Directory.Build.props b/FunctionalTests/Directory.Build.props new file mode 100644 index 000000000..421e45f89 --- /dev/null +++ b/FunctionalTests/Directory.Build.props @@ -0,0 +1,10 @@ + + + + + $(NoWarn);SA0001;CS1573,CS1591,CS1712 + + + + + diff --git a/Microsoft.Bot.Builder.sln b/Microsoft.Bot.Builder.sln index 27550ff8f..acc8dc996 100644 --- a/Microsoft.Bot.Builder.sln +++ b/Microsoft.Bot.Builder.sln @@ -5,6 +5,9 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{4269F3C3-6B42-419B-B64A-3E6DC0F1574A}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{AD743B78-D61F-4FBF-B620-FA83CE599A50}" + ProjectSection(SolutionItems) = preProject + tests\Directory.Build.props = tests\Directory.Build.props + EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Dialogs.Adaptive", "libraries\Microsoft.Bot.Builder.Dialogs.Adaptive\Microsoft.Bot.Builder.Dialogs.Adaptive.csproj", "{3CF175CF-1AF4-4109-96CB-221684DCED7D}" EndProject @@ -71,6 +74,9 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.FunctionalTests", "FunctionalTests\Microsoft.Bot.Builder.FunctionalTests\Microsoft.Bot.Builder.FunctionalTests.csproj", "{B9DDC8CB-8EDF-4D98-913A-22F19E642223}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{8667F820-8ADA-4498-91AE-AE95DEE5227E}" + ProjectSection(SolutionItems) = preProject + FunctionalTests\Directory.Build.props = FunctionalTests\Directory.Build.props + EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Testing", "libraries\Microsoft.Bot.Builder.Testing\Microsoft.Bot.Builder.Testing.csproj", "{060F070A-BBFA-490E-BE89-3844C857B771}" EndProject @@ -111,6 +117,9 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.AI.LuisV3.Tests", "tests\Microsoft.Bot.Builder.Ai.LUISV3.tests\Microsoft.Bot.Builder.AI.LuisV3.Tests.csproj", "{474C57B1-C9FC-4B71-A92B-B25BA27FAFA7}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Adapters", "Adapters", "{6230B915-B238-4E57-AAC4-06B4498F540F}" + ProjectSection(SolutionItems) = preProject + libraries\Adapters\Directory.Build.props = libraries\Adapters\Directory.Build.props + EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Adapters.Twilio", "libraries\Adapters\Microsoft.Bot.Builder.Adapters.Twilio\Microsoft.Bot.Builder.Adapters.Twilio.csproj", "{1D1AD39B-EBCF-4960-930E-84246DEF6AAE}" EndProject diff --git a/libraries/Adapters/Directory.Build.props b/libraries/Adapters/Directory.Build.props index 6a30f785a..c8c790106 100644 --- a/libraries/Adapters/Directory.Build.props +++ b/libraries/Adapters/Directory.Build.props @@ -1,4 +1,5 @@ + all @@ -6,5 +7,6 @@ + \ No newline at end of file diff --git a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Facebook/Microsoft.Bot.Builder.Adapters.Facebook.csproj b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Facebook/Microsoft.Bot.Builder.Adapters.Facebook.csproj index 584d9f257..be434ab95 100644 --- a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Facebook/Microsoft.Bot.Builder.Adapters.Facebook.csproj +++ b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Facebook/Microsoft.Bot.Builder.Adapters.Facebook.csproj @@ -6,6 +6,8 @@ $(PreviewPackageVersion) Debug;Release true + true + bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Facebook.xml @@ -15,17 +17,16 @@ This library implements C# classes for the Facebook adapter. - - bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Facebook.xml - true - - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Slack/Microsoft.Bot.Builder.Adapters.Slack.csproj b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Slack/Microsoft.Bot.Builder.Adapters.Slack.csproj index 9a5909cd7..2ac256dac 100644 --- a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Slack/Microsoft.Bot.Builder.Adapters.Slack.csproj +++ b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Slack/Microsoft.Bot.Builder.Adapters.Slack.csproj @@ -6,6 +6,8 @@ $(PreviewPackageVersion) Debug;Release; true + true + bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Slack.xml @@ -17,17 +19,17 @@ $(NoWarn),CS8002 - - bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Slack.xml - true - - - Full true + + + + $(NoWarn);CS8002;CS1591 + + diff --git a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/Microsoft.Bot.Builder.Adapters.Twilio.csproj b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/Microsoft.Bot.Builder.Adapters.Twilio.csproj index 73527fa33..38f7428b4 100644 --- a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/Microsoft.Bot.Builder.Adapters.Twilio.csproj +++ b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/Microsoft.Bot.Builder.Adapters.Twilio.csproj @@ -6,6 +6,8 @@ $(PreviewPackageVersion) Debug;Release true + true + bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Twilio.xml @@ -15,23 +17,17 @@ This library implements C# classes for Twilio adapter. + + Full + true + + netstandard2.0 $(NoWarn),CS8002 - - bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Twilio.xml - true - - - - - Full - true - - diff --git a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/TwilioClientWrapper.cs b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/TwilioClientWrapper.cs index 07b6d25bc..231374d66 100644 --- a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/TwilioClientWrapper.cs +++ b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Twilio/TwilioClientWrapper.cs @@ -46,6 +46,12 @@ namespace Microsoft.Bot.Builder.Adapters.Twilio TwilioClient.Init(Options.TwilioAccountSid, Options.TwilioAuthToken); } + /// + /// Gets the for the wrapper. + /// + /// + /// The for the wrapper. + /// public TwilioAdapterOptions Options { get; } /// diff --git a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Webex/Microsoft.Bot.Builder.Adapters.Webex.csproj b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Webex/Microsoft.Bot.Builder.Adapters.Webex.csproj index d2513d59d..6b3dcba7d 100644 --- a/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Webex/Microsoft.Bot.Builder.Adapters.Webex.csproj +++ b/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Webex/Microsoft.Bot.Builder.Adapters.Webex.csproj @@ -6,6 +6,8 @@ $(PreviewPackageVersion) Debug;Release; true + bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Webex.xml + true @@ -13,14 +15,6 @@ Microsoft.Bot.Builder.Adapters.Webex Library for connecting bots with Webex Teams API. This library implements C# classes for the Webex Adapter - - $(NoWarn),CS8002 - - - - bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Adapters.Webex.xml - true - @@ -28,6 +22,12 @@ true + + + + $(NoWarn);CS8002;CS1591 + + diff --git a/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj b/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj index b937cae08..a9eb11e1f 100644 --- a/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj +++ b/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj @@ -7,10 +7,8 @@ $(ReleasePackageVersion) Debug;Release true - - - bin\$(Configuration)\netstandard2.0\AdaptiveExpressions.xml + true @@ -18,6 +16,11 @@ true + + + $(NoWarn);CS1591 + + netstandard2.0 AdaptiveExpressions diff --git a/libraries/AdaptiveExpressions/Expression.cs b/libraries/AdaptiveExpressions/Expression.cs index dace20d7d..c902bd52d 100644 --- a/libraries/AdaptiveExpressions/Expression.cs +++ b/libraries/AdaptiveExpressions/Expression.cs @@ -345,7 +345,6 @@ namespace AdaptiveExpressions /// Return all static paths to memory. If there is a computed element index, then the path is terminated there, /// but you might get other paths from the computed part as well. /// - /// Expression to get references from. /// List of the static reference paths. public IReadOnlyList References() { diff --git a/libraries/AdaptiveExpressions/Options.cs b/libraries/AdaptiveExpressions/Options.cs index f74e6dca8..9e23f39f6 100644 --- a/libraries/AdaptiveExpressions/Options.cs +++ b/libraries/AdaptiveExpressions/Options.cs @@ -21,7 +21,7 @@ namespace AdaptiveExpressions /// Gets or sets a value, a function that been called when there is null value hit in memory. /// /// - /// The delegate. + /// The function delegate. /// public Func NullSubstitution { get; set; } = null; } diff --git a/libraries/Microsoft.Bot.Builder.AI.LUIS/LuisRecognizer.cs b/libraries/Microsoft.Bot.Builder.AI.LUIS/LuisRecognizer.cs index 5b8f75f6e..16954ad55 100644 --- a/libraries/Microsoft.Bot.Builder.AI.LUIS/LuisRecognizer.cs +++ b/libraries/Microsoft.Bot.Builder.AI.LUIS/LuisRecognizer.cs @@ -462,6 +462,7 @@ namespace Microsoft.Bot.Builder.AI.Luis /// LuisRecognizerOptions implementation to override current properties. /// Additional properties to be logged to telemetry with the LuisResult event. /// Additional metrics to be logged to telemetry with the LuisResult event. + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// RecognizerResult object. private async Task RecognizeInternalAsync(ITurnContext turnContext, LuisRecognizerOptions predictionOptions, Dictionary telemetryProperties, Dictionary telemetryMetrics, CancellationToken cancellationToken) { diff --git a/libraries/Microsoft.Bot.Builder.AI.LUIS/Microsoft.Bot.Builder.AI.Luis.csproj b/libraries/Microsoft.Bot.Builder.AI.LUIS/Microsoft.Bot.Builder.AI.Luis.csproj index ff4d41040..9248fea6e 100644 --- a/libraries/Microsoft.Bot.Builder.AI.LUIS/Microsoft.Bot.Builder.AI.Luis.csproj +++ b/libraries/Microsoft.Bot.Builder.AI.LUIS/Microsoft.Bot.Builder.AI.Luis.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.AI.Luis.xml + true @@ -16,15 +18,16 @@ content - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.AI.Luis.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Microsoft.Bot.Builder.AI.QnA/Microsoft.Bot.Builder.AI.QnA.csproj b/libraries/Microsoft.Bot.Builder.AI.QnA/Microsoft.Bot.Builder.AI.QnA.csproj index c7078d482..1406c9056 100644 --- a/libraries/Microsoft.Bot.Builder.AI.QnA/Microsoft.Bot.Builder.AI.QnA.csproj +++ b/libraries/Microsoft.Bot.Builder.AI.QnA/Microsoft.Bot.Builder.AI.QnA.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.AI.QnA.xml + true @@ -15,15 +17,16 @@ content - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.AI.QnA.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Microsoft.Bot.Builder.ApplicationInsights/Microsoft.Bot.Builder.ApplicationInsights.csproj b/libraries/Microsoft.Bot.Builder.ApplicationInsights/Microsoft.Bot.Builder.ApplicationInsights.csproj index cac0b74e0..c76313f82 100644 --- a/libraries/Microsoft.Bot.Builder.ApplicationInsights/Microsoft.Bot.Builder.ApplicationInsights.csproj +++ b/libraries/Microsoft.Bot.Builder.ApplicationInsights/Microsoft.Bot.Builder.ApplicationInsights.csproj @@ -7,6 +7,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.ApplicationInsights.xml + true @@ -16,10 +18,6 @@ This library provides integration between the Microsoft Bot Builder SDK and Application Insights. - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.ApplicationInsights.xml - - Full true diff --git a/libraries/Microsoft.Bot.Builder.Azure/CosmosDbPartitionedStorageOptions.cs b/libraries/Microsoft.Bot.Builder.Azure/CosmosDbPartitionedStorageOptions.cs index d9d4f9a78..e1a7dfaec 100644 --- a/libraries/Microsoft.Bot.Builder.Azure/CosmosDbPartitionedStorageOptions.cs +++ b/libraries/Microsoft.Bot.Builder.Azure/CosmosDbPartitionedStorageOptions.cs @@ -59,7 +59,7 @@ namespace Microsoft.Bot.Builder.Azure public int ContainerThroughput { get; set; } = 400; /// - /// Gets or sets the suffix to be added to every key. . + /// Gets or sets the suffix to be added to every key. . /// /// Note: must be set to 'false' to use a KeySuffix. /// When KeySuffix is used, keys will NOT be truncated but an exception will be thrown if diff --git a/libraries/Microsoft.Bot.Builder.Azure/Microsoft.Bot.Builder.Azure.csproj b/libraries/Microsoft.Bot.Builder.Azure/Microsoft.Bot.Builder.Azure.csproj index 42a027ee3..aa66e2a32 100644 --- a/libraries/Microsoft.Bot.Builder.Azure/Microsoft.Bot.Builder.Azure.csproj +++ b/libraries/Microsoft.Bot.Builder.Azure/Microsoft.Bot.Builder.Azure.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Azure.xml + true @@ -13,15 +15,16 @@ Azure classes for using Azure Services on the Microsoft Bot Builder SDK - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Azure.xml - - Full true + + + $(NoWarn);CS1591 + + @@ -17,21 +22,22 @@ content - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.Adaptive.Testing.xml - - Full true + + + $(NoWarn);CS1591 + + - + diff --git a/libraries/Microsoft.Bot.Builder.Dialogs.Adaptive/Microsoft.Bot.Builder.Dialogs.Adaptive.csproj b/libraries/Microsoft.Bot.Builder.Dialogs.Adaptive/Microsoft.Bot.Builder.Dialogs.Adaptive.csproj index 5788a436b..3bfe81891 100644 --- a/libraries/Microsoft.Bot.Builder.Dialogs.Adaptive/Microsoft.Bot.Builder.Dialogs.Adaptive.csproj +++ b/libraries/Microsoft.Bot.Builder.Dialogs.Adaptive/Microsoft.Bot.Builder.Dialogs.Adaptive.csproj @@ -7,6 +7,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.Adaptive.xml + true @@ -17,15 +19,16 @@ content - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.Adaptive.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Microsoft.Bot.Builder.Dialogs.Debugging/Microsoft.Bot.Builder.Dialogs.Debugging.csproj b/libraries/Microsoft.Bot.Builder.Dialogs.Debugging/Microsoft.Bot.Builder.Dialogs.Debugging.csproj index 89f709d13..3357e24ee 100644 --- a/libraries/Microsoft.Bot.Builder.Dialogs.Debugging/Microsoft.Bot.Builder.Dialogs.Debugging.csproj +++ b/libraries/Microsoft.Bot.Builder.Dialogs.Debugging/Microsoft.Bot.Builder.Dialogs.Debugging.csproj @@ -7,6 +7,8 @@ $(PreviewPackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.Debugging.xml + true @@ -17,14 +19,15 @@ content - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.Debugging.xml - - Full true + + + + $(NoWarn);CS1591 + diff --git a/libraries/Microsoft.Bot.Builder.Dialogs.Declarative/Microsoft.Bot.Builder.Dialogs.Declarative.csproj b/libraries/Microsoft.Bot.Builder.Dialogs.Declarative/Microsoft.Bot.Builder.Dialogs.Declarative.csproj index 4590e311f..b847442f2 100644 --- a/libraries/Microsoft.Bot.Builder.Dialogs.Declarative/Microsoft.Bot.Builder.Dialogs.Declarative.csproj +++ b/libraries/Microsoft.Bot.Builder.Dialogs.Declarative/Microsoft.Bot.Builder.Dialogs.Declarative.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.Declarative.xml + true @@ -16,14 +18,15 @@ content - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.Declarative.xml - - Full true + + + + $(NoWarn);CS1591 + diff --git a/libraries/Microsoft.Bot.Builder.Dialogs/Memory/Scopes/ReadOnlyObject.cs b/libraries/Microsoft.Bot.Builder.Dialogs/Memory/Scopes/ReadOnlyObject.cs index ae6bf2f55..1720835cb 100644 --- a/libraries/Microsoft.Bot.Builder.Dialogs/Memory/Scopes/ReadOnlyObject.cs +++ b/libraries/Microsoft.Bot.Builder.Dialogs/Memory/Scopes/ReadOnlyObject.cs @@ -22,7 +22,6 @@ namespace Microsoft.Bot.Builder.Dialogs.Memory.Scopes /// /// Initializes a new instance of the class. /// - /// dialog context for evalutation of expression properties. /// object to wrap. Any expression properties on it will be evaluated using the dc. public ReadOnlyObject(object obj) { diff --git a/libraries/Microsoft.Bot.Builder.Dialogs/Microsoft.Bot.Builder.Dialogs.csproj b/libraries/Microsoft.Bot.Builder.Dialogs/Microsoft.Bot.Builder.Dialogs.csproj index 10591fa59..5c8e57f41 100644 --- a/libraries/Microsoft.Bot.Builder.Dialogs/Microsoft.Bot.Builder.Dialogs.csproj +++ b/libraries/Microsoft.Bot.Builder.Dialogs/Microsoft.Bot.Builder.Dialogs.csproj @@ -7,6 +7,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.xml + true @@ -18,15 +20,16 @@ This library implements .NET Simple Dialog classes - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Dialogs.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj index 93e178e8d..61fb38878 100644 --- a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj @@ -7,6 +7,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.LanguageGeneration.xml + true @@ -16,14 +18,15 @@ This library implements Language Generation template library system for the Bot Builder SDK - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.LanguageGeneration.xml - - Full true + + + + $(NoWarn);CS1591 + diff --git a/libraries/Microsoft.Bot.Builder.TemplateManager/Microsoft.Bot.Builder.TemplateManager.csproj b/libraries/Microsoft.Bot.Builder.TemplateManager/Microsoft.Bot.Builder.TemplateManager.csproj index 71b88a621..034913d2b 100644 --- a/libraries/Microsoft.Bot.Builder.TemplateManager/Microsoft.Bot.Builder.TemplateManager.csproj +++ b/libraries/Microsoft.Bot.Builder.TemplateManager/Microsoft.Bot.Builder.TemplateManager.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release; true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.TemplateManager.xml + true @@ -14,15 +16,16 @@ This library implements .NET TemplateManager classes to manage libraries of template renderers in Microsoft Bot Builder SDK v4 - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.TemplateManager.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Microsoft.Bot.Builder.Testing/Microsoft.Bot.Builder.Testing.csproj b/libraries/Microsoft.Bot.Builder.Testing/Microsoft.Bot.Builder.Testing.csproj index b21d8cec0..08c9f26b0 100644 --- a/libraries/Microsoft.Bot.Builder.Testing/Microsoft.Bot.Builder.Testing.csproj +++ b/libraries/Microsoft.Bot.Builder.Testing/Microsoft.Bot.Builder.Testing.csproj @@ -7,6 +7,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Testing.xml + true @@ -16,10 +18,6 @@ Library for building bot tests using Microsoft Bot Framework Connector - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Testing.xml - - Full true diff --git a/libraries/Microsoft.Bot.Builder.Testing/XUnit/TestDataObject.cs b/libraries/Microsoft.Bot.Builder.Testing/XUnit/TestDataObject.cs index 895d3902e..fdae5d724 100644 --- a/libraries/Microsoft.Bot.Builder.Testing/XUnit/TestDataObject.cs +++ b/libraries/Microsoft.Bot.Builder.Testing/XUnit/TestDataObject.cs @@ -19,9 +19,12 @@ namespace Microsoft.Bot.Builder.Testing.XUnit { private const string TestObjectKey = "TestObjectKey"; - // Needed by serializer + /// + /// Initializes a new instance of the class. + /// public TestDataObject() { + // Note: This empty constructor is needed by the serializer. } /// diff --git a/libraries/Microsoft.Bot.Builder.Testing/XUnit/XUnitDialogTestLogger.cs b/libraries/Microsoft.Bot.Builder.Testing/XUnit/XUnitDialogTestLogger.cs index 0bfd4a566..92ce4337e 100644 --- a/libraries/Microsoft.Bot.Builder.Testing/XUnit/XUnitDialogTestLogger.cs +++ b/libraries/Microsoft.Bot.Builder.Testing/XUnit/XUnitDialogTestLogger.cs @@ -45,6 +45,14 @@ namespace Microsoft.Bot.Builder.Testing.XUnit /// The instance for this middleware. protected ITestOutputHelper Output { get; } + /// + /// Processes the incoming activity and logs it using the . + /// + /// The context object for this turn. + /// The delegate to call to continue the bot middleware pipeline. + /// A cancellation token that can be used by other objects + /// or threads to receive notice of cancellation. + /// A task that represents the work queued to execute. public async Task OnTurnAsync(ITurnContext context, NextDelegate next, CancellationToken cancellationToken = default(CancellationToken)) { var stopwatch = new Stopwatch(); diff --git a/libraries/Microsoft.Bot.Builder/Microsoft.Bot.Builder.csproj b/libraries/Microsoft.Bot.Builder/Microsoft.Bot.Builder.csproj index beba260af..06847afa1 100644 --- a/libraries/Microsoft.Bot.Builder/Microsoft.Bot.Builder.csproj +++ b/libraries/Microsoft.Bot.Builder/Microsoft.Bot.Builder.csproj @@ -7,10 +7,8 @@ $(ReleasePackageVersion) Debug;Release true - - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.xml + true @@ -18,6 +16,11 @@ true + + + $(NoWarn);CS1591 + + netstandard2.0 Microsoft.Bot.Builder diff --git a/libraries/Microsoft.Bot.Builder/Streaming/StreamingRequestHandler.cs b/libraries/Microsoft.Bot.Builder/Streaming/StreamingRequestHandler.cs index dfa26c471..eebf4e8d2 100644 --- a/libraries/Microsoft.Bot.Builder/Streaming/StreamingRequestHandler.cs +++ b/libraries/Microsoft.Bot.Builder/Streaming/StreamingRequestHandler.cs @@ -367,6 +367,7 @@ namespace Microsoft.Bot.Builder.Streaming /// then generates and returns a response if appropriate. /// /// A ReceiveRequest from the connected channel. + /// The instance. /// A response if the given request matches against a defined path. private StreamingResponse HandleCustomPaths(ReceiveRequest request, StreamingResponse response) { diff --git a/libraries/Microsoft.Bot.Configuration/Microsoft.Bot.Configuration.csproj b/libraries/Microsoft.Bot.Configuration/Microsoft.Bot.Configuration.csproj index 58a190b3c..08f2f8c32 100644 --- a/libraries/Microsoft.Bot.Configuration/Microsoft.Bot.Configuration.csproj +++ b/libraries/Microsoft.Bot.Configuration/Microsoft.Bot.Configuration.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release; true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Configuration.xml + true @@ -14,15 +16,16 @@ Classes for loading and saving bot configuration files - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Configuration.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Microsoft.Bot.Connector/Microsoft.Bot.Connector.csproj b/libraries/Microsoft.Bot.Connector/Microsoft.Bot.Connector.csproj index 1d79d0bc6..eec44969c 100644 --- a/libraries/Microsoft.Bot.Connector/Microsoft.Bot.Connector.csproj +++ b/libraries/Microsoft.Bot.Connector/Microsoft.Bot.Connector.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Connector.xml + true @@ -15,15 +17,16 @@ Client REST API library for Microsoft Bot Framework Connector - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Connector.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/Microsoft.Bot.Schema/Activity.cs b/libraries/Microsoft.Bot.Schema/Activity.cs index 8624619c5..12127dab9 100644 --- a/libraries/Microsoft.Bot.Schema/Activity.cs +++ b/libraries/Microsoft.Bot.Schema/Activity.cs @@ -7,7 +7,6 @@ using Newtonsoft.Json; namespace Microsoft.Bot.Schema { -#pragma warning disable SA1609 // PropertyDocumentationMustHaveValue, temporary ignore, needs to be fixed later /// /// An Activity is the basic communication type for the Bot Framework 3.0 /// protocol. @@ -176,6 +175,9 @@ namespace Microsoft.Bot.Schema /// 'messageUpdate', 'messageDelete', 'installationUpdate', /// 'messageReaction', 'suggestion', 'trace', 'handoff'. /// + /// + /// The activity type (see ). + /// [JsonProperty(PropertyName = "type")] public string Type { get; set; } @@ -183,6 +185,9 @@ namespace Microsoft.Bot.Schema /// Gets or sets an ID that uniquely identifies the activity on the /// channel. /// + /// + /// An ID that uniquely identifies the activity on the channel. + /// [JsonProperty(PropertyName = "id")] public string Id { get; set; } @@ -190,6 +195,9 @@ namespace Microsoft.Bot.Schema /// Gets or sets the date and time when the message was sent, in UTC, /// expressed in ISO-8601 format. /// + /// + /// The date and time when the message was sent, in UTC, expressed in ISO-8601 format. + /// [JsonProperty(PropertyName = "timestamp")] public System.DateTimeOffset? Timestamp { get; set; } @@ -198,6 +206,9 @@ namespace Microsoft.Bot.Schema /// time, expressed in ISO-8601 format. /// For example, 2016-09-23T13:07:49.4714686-07:00. /// + /// + /// The date and time when the message was sent, in local time, expressed in ISO-8601 format. + /// [JsonProperty(PropertyName = "localTimestamp")] public System.DateTimeOffset? LocalTimestamp { get; set; } @@ -206,6 +217,10 @@ namespace Microsoft.Bot.Schema /// the message, expressed in IANA Time Zone database format. /// For example, America/Los_Angeles. /// + /// + /// The name of the timezone used to define local time for + /// the message, expressed in IANA Time Zone database format. + /// [JsonProperty(PropertyName = "localTimezone")] public string LocalTimezone { get; set; } @@ -213,6 +228,9 @@ namespace Microsoft.Bot.Schema /// Gets or sets the URL that specifies the channel's service endpoint. /// Set by the channel. /// + /// + /// The URL that specifies the channel's service endpoint. + /// [JsonProperty(PropertyName = "serviceUrl")] public string ServiceUrl { get; set; } @@ -220,70 +238,111 @@ namespace Microsoft.Bot.Schema /// Gets or sets an ID that uniquely identifies the channel. /// Set by the channel. /// + /// + /// An ID that uniquely identifies the channel. + /// [JsonProperty(PropertyName = "channelId")] public string ChannelId { get; set; } /// /// Gets or sets the sender of the message. /// + /// + /// The for the sender of the message. + /// [JsonProperty(PropertyName = "from")] public ChannelAccount From { get; set; } /// /// Gets or sets the conversation to which the activity belongs. /// + /// + /// The to which the activity belongs. + /// [JsonProperty(PropertyName = "conversation")] public ConversationAccount Conversation { get; set; } /// /// Gets or sets the recipient of the message. /// + /// + /// The for the recipient of the message. + /// [JsonProperty(PropertyName = "recipient")] public ChannelAccount Recipient { get; set; } /// /// Gets or sets the format of text fields. Default: markdown. Possible - /// values include: 'markdown', 'plain', 'xml'. + /// values are defined by . /// + /// + /// The format of text fields (see ). + /// [JsonProperty(PropertyName = "textFormat")] public string TextFormat { get; set; } /// /// Gets or sets the layout hint for multiple attachments. Default: - /// list. Possible values include: 'list', 'carousel'. + /// list. Possible values are defined by . /// + /// + /// The layout hint for multiple attachments. + /// [JsonProperty(PropertyName = "attachmentLayout")] public string AttachmentLayout { get; set; } /// /// Gets or sets the collection of members added to the conversation. /// + /// + /// The collection of members added to the conversation. + /// [JsonProperty(PropertyName = "membersAdded")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList MembersAdded { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets the collection of members removed from the /// conversation. /// + /// + /// The collection of members removed from the conversation. + /// [JsonProperty(PropertyName = "membersRemoved")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList MembersRemoved { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets the collection of reactions added to the conversation. /// + /// + /// The collection of reactions added to the conversation. + /// [JsonProperty(PropertyName = "reactionsAdded")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList ReactionsAdded { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets the collection of reactions removed from the /// conversation. /// + /// + /// The collection of reactions removed from the conversation. + /// [JsonProperty(PropertyName = "reactionsRemoved")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList ReactionsRemoved { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets the updated topic name of the conversation. /// + /// + /// The updated topic name of the conversation. + /// [JsonProperty(PropertyName = "topicName")] public string TopicName { get; set; } @@ -291,6 +350,9 @@ namespace Microsoft.Bot.Schema /// Gets or sets a value indicating whether the prior history of the /// channel is disclosed. /// + /// + /// A value indicating whether the prior history of the channel is disclosed. + /// [JsonProperty(PropertyName = "historyDisclosed")] public bool? HistoryDisclosed { get; set; } @@ -302,27 +364,40 @@ namespace Microsoft.Bot.Schema /// country or region. /// The locale name can also correspond to a valid BCP-47 language tag. /// + /// + /// A locale for the activity. + /// [JsonProperty(PropertyName = "locale")] public string Locale { get; set; } /// /// Gets or sets the text content of the message. /// + /// + /// The text content of the message. + /// [JsonProperty(PropertyName = "text")] public string Text { get; set; } /// /// Gets or sets the text to speak. /// + /// + /// The text to speak. + /// [JsonProperty(PropertyName = "speak")] public string Speak { get; set; } /// /// Gets or sets a string indicating whether your bot is accepting, /// expecting, or ignoring user input after the message is delivered to - /// the client. Possible values include: 'acceptingInput', - /// 'ignoringInput', 'expectingInput'. + /// the client (see . /// + /// + /// A string indicating whether your bot is accepting, + /// expecting, or ignoring user input after the message is delivered to + /// the client. + /// [JsonProperty(PropertyName = "inputHint")] public string InputHint { get; set; } @@ -330,38 +405,64 @@ namespace Microsoft.Bot.Schema /// Gets or sets the text to display if the channel cannot render /// cards. /// + /// + /// The text to display if the channel cannot render cards. + /// [JsonProperty(PropertyName = "summary")] public string Summary { get; set; } /// /// Gets or sets the suggested actions for the activity. /// + /// + /// The suggested actions for the activity. + /// [JsonProperty(PropertyName = "suggestedActions")] public SuggestedActions SuggestedActions { get; set; } /// /// Gets or sets the attachments for the activity. /// + /// + /// The attachments for the activity. + /// [JsonProperty(PropertyName = "attachments")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList Attachments { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets the entities that were mentioned in the message. /// + /// + /// The entities that were mentioned in the message. + /// [JsonProperty(PropertyName = "entities")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList Entities { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets channel-specific content. /// + /// + /// Channel-specific content. + /// [JsonProperty(PropertyName = "channelData")] +#pragma warning disable CA1721 // Property names should not match get methods (we can't change this without changing binary compat). public object ChannelData { get; set; } +#pragma warning restore CA1721 // Property names should not match get methods /// /// Gets or sets a string indicating whether the recipient of a /// contactRelationUpdate was added to or removed from the sender's /// contact list. /// + /// + /// A string indicating whether the recipient of a + /// contactRelationUpdate was added to or removed from the sender's + /// contact list. + /// [JsonProperty(PropertyName = "action")] public string Action { get; set; } @@ -369,24 +470,36 @@ namespace Microsoft.Bot.Schema /// Gets or sets the ID of the message to which this message is a /// reply. /// + /// + /// The ID of the message to which this message is a reply. + /// [JsonProperty(PropertyName = "replyToId")] public string ReplyToId { get; set; } /// /// Gets or sets a descriptive label for the activity. /// + /// + /// A descriptive label for the activity. + /// [JsonProperty(PropertyName = "label")] public string Label { get; set; } /// /// Gets or sets the type of the activity's value object. /// + /// + /// The type of the activity's value object. + /// [JsonProperty(PropertyName = "valueType")] public string ValueType { get; set; } /// /// Gets or sets a value that is associated with the activity. /// + /// + /// A value that is associated with the activity. + /// [JsonProperty(PropertyName = "value")] public object Value { get; set; } @@ -394,21 +507,29 @@ namespace Microsoft.Bot.Schema /// Gets or sets the name of the operation associated with an invoke or /// event activity. /// + /// + /// The name of the operation associated with an invoke or event activity. + /// [JsonProperty(PropertyName = "name")] public string Name { get; set; } /// - /// Gets or sets a reference to another conversation or activity. + /// Gets or sets a to another conversation or activity. /// + /// + /// A reference to another conversation or activity. + /// [JsonProperty(PropertyName = "relatesTo")] public ConversationReference RelatesTo { get; set; } /// /// Gets or sets a code for endOfConversation activities that indicates - /// why the conversation ended. Possible values include: - /// 'unknown', 'completedSuccessfully', 'userCancelled', 'botTimedOut', - /// 'botIssuedInvalidMessage', 'channelFailed'. + /// why the conversation ended. Possible values are defined in . /// + /// + /// A code for endOfConversation activities that indicates + /// why the conversation ended. + /// [JsonProperty(PropertyName = "code")] public string Code { get; set; } @@ -416,22 +537,32 @@ namespace Microsoft.Bot.Schema /// Gets or sets the time at which the activity should be considered to /// be "expired" and should not be presented to the recipient. /// + /// + /// The time at which the activity should be considered to + /// be "expired" and should not be presented to the recipient. + /// [JsonProperty(PropertyName = "expiration")] public System.DateTimeOffset? Expiration { get; set; } /// /// Gets or sets the importance of the activity. Possible values - /// include: 'low', 'normal', 'high'. + /// are defined in . /// + /// + /// The importance of the activity. + /// [JsonProperty(PropertyName = "importance")] public string Importance { get; set; } /// /// Gets or sets a delivery hint to signal to the recipient alternate /// delivery paths for the activity. - /// The default delivery mode is "default". Possible values include: - /// 'normal', 'notification', 'expectReplies', 'ephemeral'. + /// The default delivery mode is "default". Possible values are defined in . /// + /// + /// A delivery hint to signal to the recipient alternate + /// delivery paths for the activity. + /// [JsonProperty(PropertyName = "deliveryMode")] public string DeliveryMode { get; set; } @@ -439,20 +570,35 @@ namespace Microsoft.Bot.Schema /// Gets or sets list of phrases and references that speech and /// language-priming systems should listen for. /// + /// + /// List of phrases and references that speech and language-priming systems should listen for. + /// [JsonProperty(PropertyName = "listenFor")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList ListenFor { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets the collection of text fragments to highlight when the /// activity contains a ReplyToId value. /// + /// + /// The collection of text fragments to highlight when the + /// activity contains a ReplyToId value. + /// [JsonProperty(PropertyName = "textHighlights")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList TextHighlights { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets an optional programmatic action accompanying this /// request. /// + /// + /// An optional programmatic action accompanying this + /// request. + /// [JsonProperty(PropertyName = "semanticAction")] public SemanticAction SemanticAction { get; set; } @@ -462,6 +608,12 @@ namespace Microsoft.Bot.Schema /// instead populated by bots and clients based on cryptographically /// verifiable data that asserts the identity of the callers (e.g. tokens). /// + /// + /// A string containing an IRI identifying the caller of a bot. + /// This field is not intended to be transmitted over the wire, but is + /// instead populated by bots and clients based on cryptographically + /// verifiable data that asserts the identity of the callers (e.g. tokens). + /// [JsonProperty(PropertyName = "callerId")] public string CallerId { get; set; } @@ -470,5 +622,4 @@ namespace Microsoft.Bot.Schema /// partial void CustomInit(); } -#pragma warning restore SA1609 // PropertyDocumentationMustHaveValue } diff --git a/libraries/Microsoft.Bot.Schema/ActivityEx.cs b/libraries/Microsoft.Bot.Schema/ActivityEx.cs index 9ef14858f..900f25e39 100644 --- a/libraries/Microsoft.Bot.Schema/ActivityEx.cs +++ b/libraries/Microsoft.Bot.Schema/ActivityEx.cs @@ -51,7 +51,9 @@ namespace Microsoft.Bot.Schema /// the JSON object is deserialized, but are instead stored in this property. Such properties /// will be written to a JSON object when the instance is serialized. [JsonExtensionData(ReadData = true, WriteData = true)] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public JObject Properties { get; set; } = new JObject(); +#pragma warning restore CA2227 // Collection properties should be read only /// /// Creates an instance of the class as an object. @@ -378,8 +380,8 @@ namespace Microsoft.Bot.Schema /// public Mention[] GetMentions() { - return this.Entities?.Where(entity => string.Compare(entity.Type, "mention", ignoreCase: true) == 0) - .Select(e => e.Properties.ToObject()).ToArray() ?? new Mention[0]; + return this.Entities?.Where(entity => string.Compare(entity.Type, "mention", StringComparison.OrdinalIgnoreCase) == 0) + .Select(e => e.Properties.ToObject()).ToArray() ?? Array.Empty(); } /// @@ -389,7 +391,9 @@ namespace Microsoft.Bot.Schema /// The strongly-typed object; or the type's default value, if the is null. /// /// +#pragma warning disable CA1715 // Identifiers should have correct prefix (we can't change it without breaking binary compatibility) public TypeT GetChannelData() +#pragma warning restore CA1715 // Identifiers should have correct prefix { if (this.ChannelData == null) { @@ -416,7 +420,9 @@ namespace Microsoft.Bot.Schema /// /// /// +#pragma warning disable CA1715 // Identifiers should have correct prefix (we can't change it without breaking binary compatibility) public bool TryGetChannelData(out TypeT instance) +#pragma warning restore CA1715 // Identifiers should have correct prefix { instance = default(TypeT); @@ -430,7 +436,9 @@ namespace Microsoft.Bot.Schema instance = this.GetChannelData(); return true; } +#pragma warning disable CA1031 // Do not catch general exception types (we just return false here if the conversion fails for any reason) catch +#pragma warning restore CA1031 // Do not catch general exception types { return false; } @@ -442,7 +450,7 @@ namespace Microsoft.Bot.Schema /// A conversation reference for the conversation that contains this activity. public ConversationReference GetConversationReference() { - ConversationReference reference = new ConversationReference + var reference = new ConversationReference { ActivityId = this.Id, User = this.From, @@ -568,9 +576,5 @@ namespace Microsoft.Bot.Schema return result; } - - partial void CustomInit() - { - } } } diff --git a/libraries/Microsoft.Bot.Schema/AttachmentEx.cs b/libraries/Microsoft.Bot.Schema/AttachmentEx.cs index 085ecba41..6f3b44279 100644 --- a/libraries/Microsoft.Bot.Schema/AttachmentEx.cs +++ b/libraries/Microsoft.Bot.Schema/AttachmentEx.cs @@ -20,6 +20,8 @@ namespace Microsoft.Bot.Schema /// the JSON object is deserialized, but are instead stored in this property. Such properties /// will be written to a JSON object when the instance is serialized. [JsonExtensionData(ReadData = true, WriteData = true)] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public JObject Properties { get; set; } = new JObject(); +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/CardActionEx.cs b/libraries/Microsoft.Bot.Schema/CardActionEx.cs index 70821b9a0..d66bda97b 100644 --- a/libraries/Microsoft.Bot.Schema/CardActionEx.cs +++ b/libraries/Microsoft.Bot.Schema/CardActionEx.cs @@ -17,5 +17,15 @@ namespace Microsoft.Bot.Schema { return new CardAction(title: input, value: input); } + + /// + /// Creates a from the given input. + /// + /// Represents the title and value for the . + /// A new instance. + public static CardAction FromString(string input) + { + return new CardAction(title: input, value: input); + } } } diff --git a/libraries/Microsoft.Bot.Schema/ChannelAccountEx.cs b/libraries/Microsoft.Bot.Schema/ChannelAccountEx.cs index 55a9b9f95..e982903f0 100644 --- a/libraries/Microsoft.Bot.Schema/ChannelAccountEx.cs +++ b/libraries/Microsoft.Bot.Schema/ChannelAccountEx.cs @@ -20,6 +20,8 @@ namespace Microsoft.Bot.Schema /// the JSON object is deserialized, but are instead stored in this property. Such properties /// will be written to a JSON object when the instance is serialized. [JsonExtensionData(ReadData = true, WriteData = true)] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public JObject Properties { get; set; } = new JObject(); +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/ConversationAccountEx.cs b/libraries/Microsoft.Bot.Schema/ConversationAccountEx.cs index 189446b9c..4e0a435b2 100644 --- a/libraries/Microsoft.Bot.Schema/ConversationAccountEx.cs +++ b/libraries/Microsoft.Bot.Schema/ConversationAccountEx.cs @@ -20,6 +20,8 @@ namespace Microsoft.Bot.Schema /// the JSON object is deserialized, but are instead stored in this property. Such properties /// will be written to a JSON object when the instance is serialized. [JsonExtensionData(ReadData = true, WriteData = true)] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public JObject Properties { get; set; } = new JObject(); +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/EntityEx.cs b/libraries/Microsoft.Bot.Schema/EntityEx.cs index 185b3d648..968002f9e 100644 --- a/libraries/Microsoft.Bot.Schema/EntityEx.cs +++ b/libraries/Microsoft.Bot.Schema/EntityEx.cs @@ -21,7 +21,9 @@ namespace Microsoft.Bot.Schema /// the JSON object is deserialized, but are instead stored in this property. Such properties /// will be written to a JSON object when the instance is serialized. [JsonExtensionData(ReadData = true, WriteData = true)] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public JObject Properties { get; set; } = new JObject(); +#pragma warning restore CA2227 // Collection properties should be read only /// /// Retrieve internal payload. @@ -52,7 +54,7 @@ namespace Microsoft.Bot.Schema return false; } - return JsonConvert.SerializeObject(this).Equals(JsonConvert.SerializeObject(other)); + return JsonConvert.SerializeObject(this).Equals(JsonConvert.SerializeObject(other), StringComparison.Ordinal); } public override bool Equals(object obj) diff --git a/libraries/Microsoft.Bot.Schema/ErrorCodes.cs b/libraries/Microsoft.Bot.Schema/ErrorCodes.cs index 6ac560b58..a0337767c 100644 --- a/libraries/Microsoft.Bot.Schema/ErrorCodes.cs +++ b/libraries/Microsoft.Bot.Schema/ErrorCodes.cs @@ -6,7 +6,9 @@ namespace Microsoft.Bot.Schema /// /// Error codes to communicate when throwing an APIException. /// +#pragma warning disable CA1052 // Static holder types should be Static or NotInheritable (this class should have been static but we can't change it without breaking binary compat) public class ErrorCodes +#pragma warning restore CA1052 // Static holder types should be Static or NotInheritable { /// /// Other error, not specified. diff --git a/libraries/Microsoft.Bot.Schema/GeoCoordinates.cs b/libraries/Microsoft.Bot.Schema/GeoCoordinates.cs index 9c569508e..3605e065c 100644 --- a/libraries/Microsoft.Bot.Schema/GeoCoordinates.cs +++ b/libraries/Microsoft.Bot.Schema/GeoCoordinates.cs @@ -1,4 +1,4 @@ -// +// // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for // license information. @@ -73,12 +73,6 @@ namespace Microsoft.Bot.Schema [JsonProperty(PropertyName = "longitude")] public double? Longitude { get; set; } - /// - /// Gets or sets the type of the thing - /// - [JsonProperty(PropertyName = "type")] - public string Type { get; set; } - /// /// Gets or sets the name of the thing /// diff --git a/libraries/Microsoft.Bot.Schema/HealthResults.cs b/libraries/Microsoft.Bot.Schema/HealthResults.cs index bded9c297..9752ecb1f 100644 --- a/libraries/Microsoft.Bot.Schema/HealthResults.cs +++ b/libraries/Microsoft.Bot.Schema/HealthResults.cs @@ -17,7 +17,9 @@ namespace Microsoft.Bot.Schema public string UserAgent { get; set; } [JsonProperty(PropertyName = "messages")] +#pragma warning disable CA1819 // Properties should not return arrays (we can't change this without breaking binary compat). public string[] Messages { get; set; } +#pragma warning restore CA1819 // Properties should not return arrays [JsonProperty(PropertyName = "diagnostics")] public object Diagnostics { get; set; } diff --git a/libraries/Microsoft.Bot.Schema/IActivity.cs b/libraries/Microsoft.Bot.Schema/IActivity.cs index afc088202..ac810b782 100644 --- a/libraries/Microsoft.Bot.Schema/IActivity.cs +++ b/libraries/Microsoft.Bot.Schema/IActivity.cs @@ -33,7 +33,9 @@ namespace Microsoft.Bot.Schema /// /// Service URL where responses to this activity should be sent. /// +#pragma warning disable CA1056 // Uri properties should not be strings (we can't change this without breaking binary compat) string ServiceUrl { get; set; } +#pragma warning restore CA1056 // Uri properties should not be strings /// /// Gets or sets timestamp when this message was sent (UTC). @@ -100,7 +102,9 @@ namespace Microsoft.Bot.Schema /// /// Collection of Entity objects, each of which contains metadata about this activity. Each Entity object is typed. /// +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) IList Entities { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets channel-specific payload. @@ -121,14 +125,18 @@ namespace Microsoft.Bot.Schema /// /// Channel-specific payload. /// +#pragma warning disable CA1721 // Property names should not match get methods (we can't change this without breaking binary compat) dynamic ChannelData { get; set; } +#pragma warning restore CA1721 // Property names should not match get methods /// /// Gets the channel data as strongly typed object. /// /// The expected type of the object. /// The strongly typed channel data. +#pragma warning disable CA1715 // Identifiers should have correct prefix (we can't change this without breaking binary compat) TypeT GetChannelData(); +#pragma warning restore CA1715 // Identifiers should have correct prefix /// /// Try to get the channeldata as a strongly typed object. @@ -136,7 +144,9 @@ namespace Microsoft.Bot.Schema /// Type T. /// instance. /// false if there is no valid channeldata available. +#pragma warning disable CA1715 // Identifiers should have correct prefix (we can't change this without breaking binary compat) bool TryGetChannelData(out TypeT instance); +#pragma warning restore CA1715 // Identifiers should have correct prefix /// /// Return IMessageActivity if this is a message activity, null otherwise. diff --git a/libraries/Microsoft.Bot.Schema/IConversationUpdateActivity.cs b/libraries/Microsoft.Bot.Schema/IConversationUpdateActivity.cs index 451c8eeb1..9a68d77c9 100644 --- a/libraries/Microsoft.Bot.Schema/IConversationUpdateActivity.cs +++ b/libraries/Microsoft.Bot.Schema/IConversationUpdateActivity.cs @@ -14,13 +14,17 @@ namespace Microsoft.Bot.Schema /// Gets or Sets Members added to the conversation. /// /// List of ChannelAccount. +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) IList MembersAdded { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or Sets Members removed from the conversation. /// /// List of ChannelAccount. +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) IList MembersRemoved { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or Sets The conversation's updated topic name. diff --git a/libraries/Microsoft.Bot.Schema/IMessageActivity.cs b/libraries/Microsoft.Bot.Schema/IMessageActivity.cs index 5dc56f4db..feac18be8 100644 --- a/libraries/Microsoft.Bot.Schema/IMessageActivity.cs +++ b/libraries/Microsoft.Bot.Schema/IMessageActivity.cs @@ -76,7 +76,9 @@ namespace Microsoft.Bot.Schema /// /// Attachments. /// +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) IList Attachments { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets suggestedActions are used to express actions for interacting with a card like keyboards/quickReplies. diff --git a/libraries/Microsoft.Bot.Schema/IMessageReactionActivity.cs b/libraries/Microsoft.Bot.Schema/IMessageReactionActivity.cs index 58c7082cd..fc5076ace 100644 --- a/libraries/Microsoft.Bot.Schema/IMessageReactionActivity.cs +++ b/libraries/Microsoft.Bot.Schema/IMessageReactionActivity.cs @@ -16,7 +16,9 @@ namespace Microsoft.Bot.Schema /// /// Reactions added to the activity. /// +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) IList ReactionsAdded { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only /// /// Gets or sets reactions removed from the activity. @@ -24,6 +26,8 @@ namespace Microsoft.Bot.Schema /// /// Reactions removed from the activity. /// +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) IList ReactionsRemoved { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/ISuggestionActivity.cs b/libraries/Microsoft.Bot.Schema/ISuggestionActivity.cs index 70450abe3..c675791cb 100644 --- a/libraries/Microsoft.Bot.Schema/ISuggestionActivity.cs +++ b/libraries/Microsoft.Bot.Schema/ISuggestionActivity.cs @@ -18,6 +18,8 @@ namespace Microsoft.Bot.Schema /// Gets or Sets Indicates the sections of text in the referenced message to highlight. /// /// TextHighlights. +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) IList TextHighlights { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/Mention.cs b/libraries/Microsoft.Bot.Schema/Mention.cs index 55404a0c9..1a8b0c51b 100644 --- a/libraries/Microsoft.Bot.Schema/Mention.cs +++ b/libraries/Microsoft.Bot.Schema/Mention.cs @@ -1,4 +1,4 @@ -// +// // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for // license information. @@ -58,12 +58,5 @@ namespace Microsoft.Bot.Schema /// [JsonProperty(PropertyName = "text")] public string Text { get; set; } - - /// - /// Gets or sets type of this entity (RFC 3987 IRI) - /// - [JsonProperty(PropertyName = "type")] - public string Type { get; set; } - } } diff --git a/libraries/Microsoft.Bot.Schema/Microsoft.Bot.Schema.csproj b/libraries/Microsoft.Bot.Schema/Microsoft.Bot.Schema.csproj index b35c771d8..524545ffc 100644 --- a/libraries/Microsoft.Bot.Schema/Microsoft.Bot.Schema.csproj +++ b/libraries/Microsoft.Bot.Schema/Microsoft.Bot.Schema.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Schema.xml + true @@ -14,21 +16,22 @@ This library implements C# schema classes for using the Bot Framework. - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Schema.xml - - Full true - $(NoWarn);CS0108 + + $(NoWarn);CS1573;CS1591 + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + - + \ No newline at end of file diff --git a/libraries/Microsoft.Bot.Schema/Place.cs b/libraries/Microsoft.Bot.Schema/Place.cs index 8148d9e09..f29b31edf 100644 --- a/libraries/Microsoft.Bot.Schema/Place.cs +++ b/libraries/Microsoft.Bot.Schema/Place.cs @@ -1,4 +1,4 @@ -// +// // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for // license information. @@ -73,12 +73,6 @@ namespace Microsoft.Bot.Schema [JsonProperty(PropertyName = "hasMap")] public object HasMap { get; set; } - /// - /// Gets or sets the type of the thing - /// - [JsonProperty(PropertyName = "type")] - public string Type { get; set; } - /// /// Gets or sets the name of the thing /// diff --git a/libraries/Microsoft.Bot.Schema/Teams/TeamsPagedMembersResult.cs b/libraries/Microsoft.Bot.Schema/Teams/TeamsPagedMembersResult.cs index 6ac019647..da5e6fd2e 100644 --- a/libraries/Microsoft.Bot.Schema/Teams/TeamsPagedMembersResult.cs +++ b/libraries/Microsoft.Bot.Schema/Teams/TeamsPagedMembersResult.cs @@ -25,6 +25,8 @@ namespace Microsoft.Bot.Schema.Teams public string ContinuationToken { get; set; } [JsonProperty(PropertyName = "members")] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public IList Members { get; set; } +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeRequest.cs b/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeRequest.cs index e3e432e76..4320da027 100644 --- a/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeRequest.cs +++ b/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeRequest.cs @@ -46,6 +46,8 @@ namespace Microsoft.Bot.Schema /// Extension data for overflow of properties. /// [JsonExtensionData(ReadData = true, WriteData = true)] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public JObject Properties { get; set; } = new JObject(); +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeResponse.cs b/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeResponse.cs index f15135b3e..7eb24216b 100644 --- a/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeResponse.cs +++ b/libraries/Microsoft.Bot.Schema/TokenExchangeInvokeResponse.cs @@ -46,6 +46,8 @@ namespace Microsoft.Bot.Schema /// Extension data for overflow of properties. /// [JsonExtensionData(ReadData = true, WriteData = true)] +#pragma warning disable CA2227 // Collection properties should be read only (we can't change this without breaking binary compat) public JObject Properties { get; set; } = new JObject(); +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/libraries/Microsoft.Bot.Schema/TokenExchangeState.cs b/libraries/Microsoft.Bot.Schema/TokenExchangeState.cs index 3051d9818..b0f2dadf5 100644 --- a/libraries/Microsoft.Bot.Schema/TokenExchangeState.cs +++ b/libraries/Microsoft.Bot.Schema/TokenExchangeState.cs @@ -44,7 +44,9 @@ namespace Microsoft.Bot.Schema /// The URL of the bot messaging endpoint. /// [JsonProperty("botUrl")] +#pragma warning disable CA1056 // Uri properties should not be strings (we can't change this without breaking binary compat) public string BotUrl { get; set; } +#pragma warning restore CA1056 // Uri properties should not be strings /// /// Gets or sets the bot's registered application ID. diff --git a/libraries/Microsoft.Bot.Streaming/Microsoft.Bot.Streaming.csproj b/libraries/Microsoft.Bot.Streaming/Microsoft.Bot.Streaming.csproj index b7f6052b8..d3396b097 100644 --- a/libraries/Microsoft.Bot.Streaming/Microsoft.Bot.Streaming.csproj +++ b/libraries/Microsoft.Bot.Streaming/Microsoft.Bot.Streaming.csproj @@ -8,6 +8,8 @@ Debug;Release true $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb + bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Streaming.xml + true @@ -17,17 +19,14 @@ Streaming library for the Bot Framework SDK - - bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Streaming.xml - - Full true - $(SolutionDir)BotBuilder-DotNet.ruleset + + $(NoWarn);CS1591 diff --git a/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.csproj b/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.csproj index ba90b46bc..ffb7c2942 100644 --- a/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.csproj +++ b/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.csproj @@ -5,6 +5,8 @@ $(LocalPackageVersion) $(ReleasePackageVersion) Debug;Release + bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.xml + true @@ -15,15 +17,16 @@ true - - bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi.csproj b/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi.csproj index 6118167ec..ff8da5a42 100644 --- a/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi.csproj +++ b/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi.csproj @@ -7,6 +7,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\net461\Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi.xml + true @@ -15,16 +17,17 @@ This library integrates the Microsoft Bot Builder SDK with Application Insights WebAPI. This library provides integration between the Microsoft Bot Builder SDK and Application Insights. - - - bin\$(Configuration)\net461\Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi.xml - Full true + + + $(NoWarn);CS1591 + + Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi diff --git a/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.Core/Microsoft.Bot.Builder.Integration.AspNet.Core.csproj b/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.Core/Microsoft.Bot.Builder.Integration.AspNet.Core.csproj index cb7883488..bb2bb75cc 100644 --- a/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.Core/Microsoft.Bot.Builder.Integration.AspNet.Core.csproj +++ b/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.Core/Microsoft.Bot.Builder.Integration.AspNet.Core.csproj @@ -6,6 +6,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Integration.AspNet.Core.xml + true @@ -14,15 +16,16 @@ This library provides integration between the Microsoft Bot Builder SDK and ASP.NET Core. - - bin\$(Configuration)\$(TargetFramework)\Microsoft.Bot.Builder.Integration.AspNet.Core.xml - - Full true + + + $(NoWarn);CS1591 + + diff --git a/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.WebApi/Microsoft.Bot.Builder.Integration.AspNet.WebApi.csproj b/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.WebApi/Microsoft.Bot.Builder.Integration.AspNet.WebApi.csproj index 4716d6c85..8604d6880 100644 --- a/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.WebApi/Microsoft.Bot.Builder.Integration.AspNet.WebApi.csproj +++ b/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.WebApi/Microsoft.Bot.Builder.Integration.AspNet.WebApi.csproj @@ -7,6 +7,8 @@ $(ReleasePackageVersion) Debug;Release true + bin\$(Configuration)\net461\Microsoft.Bot.Builder.Integration.AspNet.WebApi.xml + true @@ -15,9 +17,10 @@ This library integrates the Microsoft Bot Builder SDK with ASP.NET WebAPI. It offers idiomatic configuration APIs in addition to providing all the plumbing to direct incoming bot messages to a configured bot. This library provides integration between the Microsoft Bot Builder SDK and ASP.NET WebAPI. - - - bin\$(Configuration)\net461\Microsoft.Bot.Builder.Integration.AspNet.WebApi.xml + + + + $(NoWarn);CS1591 diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props new file mode 100644 index 000000000..c431bb412 --- /dev/null +++ b/tests/Directory.Build.props @@ -0,0 +1,10 @@ + + + + + $(NoWarn);SA0001;CS1573,CS1591,CS1712 + + + + + diff --git a/tests/Microsoft.Bot.Schema.Tests/CardActionTest.cs b/tests/Microsoft.Bot.Schema.Tests/CardActionTest.cs index 330600e46..3f63f7049 100644 --- a/tests/Microsoft.Bot.Schema.Tests/CardActionTest.cs +++ b/tests/Microsoft.Bot.Schema.Tests/CardActionTest.cs @@ -12,7 +12,12 @@ namespace Microsoft.Bot.Schema.Tests [TestMethod] public void TestImplicitConversation() { - SuggestedActions(new CardAction[] { "x", "y", "z" }); + SuggestedActions(new CardAction[] + { + "x", + "y", + "z" + }); void SuggestedActions(IList actions) { @@ -24,5 +29,13 @@ namespace Microsoft.Bot.Schema.Tests Assert.AreEqual("z", actions[2].Value); } } + + [TestMethod] + public void FromString() + { + var sut = CardAction.FromString("my action"); + Assert.AreEqual("my action", sut.Title); + Assert.AreEqual("my action", sut.Value); + } } }