From cb4e0cef8b84e7224ab77ff3c6a85edd23005fc2 Mon Sep 17 00:00:00 2001 From: John Luo Date: Tue, 14 Jul 2020 15:22:10 -0700 Subject: [PATCH 01/75] Update branding to 2.1.21 (#23920) --- eng/Baseline.Designer.props | 2 +- eng/Baseline.xml | 2 +- eng/PatchConfig.props | 4 ++++ .../Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.20.txt | 1 + .../Archive.CiServer.Patch/ArchiveBaseline.2.1.20.txt | 1 + version.props | 2 +- 6 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.20.txt create mode 100644 src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.20.txt diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index 1622fa7041..11119cef2f 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,7 +2,7 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.1.19 + 2.1.20 diff --git a/eng/Baseline.xml b/eng/Baseline.xml index 7497e78a7b..398381dcad 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -4,7 +4,7 @@ This file contains a list of all the packages and their versions which were rele build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch. --> - + diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index aefa226d15..3eb4d105ba 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -66,4 +66,8 @@ Later on, this will be checked using this condition: @aspnet/signalr; + + + + diff --git a/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.20.txt b/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.20.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.20.txt @@ -0,0 +1 @@ + diff --git a/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.20.txt b/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.20.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.20.txt @@ -0,0 +1 @@ + diff --git a/version.props b/version.props index 8a787e0583..e0df5c7e11 100644 --- a/version.props +++ b/version.props @@ -2,7 +2,7 @@ 2 1 - 20 + 21 servicing Servicing t000 From 38126419b803c6fd1946645aabff98aa239d2b79 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Wed, 15 Jul 2020 12:02:45 -0700 Subject: [PATCH 02/75] Update branding to RC1 (#23943) --- eng/Versions.props | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 84ec8f51e6..25b336af38 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -9,14 +9,14 @@ 5 0 0 - 8 + 1 false release - preview - Preview $(PreReleaseVersionIteration) + rc + RC $(PreReleaseVersionIteration) true false $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) From 2293fc243bfdc7c9fbd547f7a7969e8e6b863a1d Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Wed, 15 Jul 2020 13:31:44 -0700 Subject: [PATCH 03/75] Add Razor Tooling Bug report issue template (#23961) * Add Razor Tooling Bug report issue template - Given we're going to start providing a new Razor tooling editor experience we expect our users to hit a number of issues. To optimize their path of filing an issue we're creating a bug template for them to use. In parallel we're also working with the VS report an issue tool to gather additioanl data so we can encourage users to go the typical "report a bug" route for VS scenarios. Fixes dotnet/aspnetcore#23551 * Addressed code review feedback. * More feedback. --- .github/ISSUE_TEMPLATE/razor_tooling.md | 66 +++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/razor_tooling.md diff --git a/.github/ISSUE_TEMPLATE/razor_tooling.md b/.github/ISSUE_TEMPLATE/razor_tooling.md new file mode 100644 index 0000000000..2341e230bd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/razor_tooling.md @@ -0,0 +1,66 @@ +--- +name: 🐞 Razor Tooling Bug report +about: Report an issue about something that is not working in the new Razor tooling +labels: area-razor.tooling, feature-razor.vs +--- + + + + + +### Describe the bug +A clear and concise description of what the bug is. + +### To Reproduce + + +### Logs & Exceptions + +Please collect the data below before reporting your issue to aid us in diagnosing the root cause. + +#### Activity log +[Here](https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-use-the-activity-log?view=vs-2019#to-examine-the-activity-log) are the instructions on how to generate/acquire one. + +#### Razor Language Server Client log + +
+Razor Language Server Client Log Output + +Paste log output here + +
+ +#### HTML Language Server Client log + +
+HTML Language Server Client Log Output + +Paste log output here + +
+ +### Further technical details +- VS version (Help => About Microsoft Visual Studio, i.e. 16.8.0 Preview 1 30313.27...). If in Codespaces there will be two versions (server and client), please provide both. +- Scenario (Local, LiveShare, Codespaces) + +### Pre-requisite checklist +- [ ] Steps to reproduce the issue +- [ ] Visual Studio Activity Log attached. +- [ ] Razor Language Server client logs included. +- [ ] HTML Language Server client logs included From 49672ee4524be0203986beb7dfdd0beaeb3dd56e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 15 Jul 2020 21:34:40 +0000 Subject: [PATCH 04/75] Update dependencies from https://github.com/dotnet/efcore build 20200715.2 (#23970) Microsoft.EntityFrameworkCore.Tools , Microsoft.EntityFrameworkCore.SqlServer , dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.InMemory From Version 5.0.0-preview.8.20360.8 -> To Version 5.0.0-preview.8.20365.2 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 516f46414f..5eb918bc48 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,33 +13,33 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + ca2a793016c6980c943325c214f42602910d9991 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + ca2a793016c6980c943325c214f42602910d9991 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + ca2a793016c6980c943325c214f42602910d9991 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + ca2a793016c6980c943325c214f42602910d9991 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + ca2a793016c6980c943325c214f42602910d9991 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + ca2a793016c6980c943325c214f42602910d9991 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + ca2a793016c6980c943325c214f42602910d9991 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 25b336af38..540e9dff93 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -133,13 +133,13 @@ 3.2.0 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 + 5.0.0-preview.8.20365.2 + 5.0.0-preview.8.20365.2 + 5.0.0-preview.8.20365.2 + 5.0.0-preview.8.20365.2 + 5.0.0-preview.8.20365.2 + 5.0.0-preview.8.20365.2 + 5.0.0-preview.8.20365.2
true link + false + + + false + true + false + false + false / true @@ -414,7 +422,7 @@ Copyright (c) .NET Foundation. All rights reserved. Condition="'%(ResolvedFileToPublish.RelativePath)' != 'web.config' AND !$([System.String]::Copy('%(ResolvedFileToPublish.RelativePath)').Replace('\','/').StartsWith('wwwroot/'))" /> - + From 7f4af095f77063b8a81d1def6fe684c87382471c Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Wed, 15 Jul 2020 18:52:37 -0700 Subject: [PATCH 07/75] Add timeout to all awaits in GlobbingAppTests (#23938) --- .../dotnet-watch/test/GlobbingAppTests.cs | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/Tools/dotnet-watch/test/GlobbingAppTests.cs b/src/Tools/dotnet-watch/test/GlobbingAppTests.cs index e731247241..95224ea800 100644 --- a/src/Tools/dotnet-watch/test/GlobbingAppTests.cs +++ b/src/Tools/dotnet-watch/test/GlobbingAppTests.cs @@ -15,7 +15,10 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests { public class GlobbingAppTests : IDisposable { - private GlobbingApp _app; + private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(60); + + private readonly GlobbingApp _app; + public GlobbingAppTests(ITestOutputHelper logger) { _app = new GlobbingApp(logger); @@ -28,17 +31,17 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests public async Task ChangeCompiledFile(bool usePollingWatcher) { _app.UsePollingWatcher = usePollingWatcher; - await _app.StartWatcherAsync(); + await _app.StartWatcherAsync().TimeoutAfter(DefaultTimeout); - var types = await _app.GetCompiledAppDefinedTypes(); + var types = await _app.GetCompiledAppDefinedTypes().TimeoutAfter(DefaultTimeout); Assert.Equal(2, types); var fileToChange = Path.Combine(_app.SourceDirectory, "include", "Foo.cs"); var programCs = File.ReadAllText(fileToChange); File.WriteAllText(fileToChange, programCs); - await _app.HasRestarted(); - types = await _app.GetCompiledAppDefinedTypes(); + await _app.HasRestarted().TimeoutAfter(DefaultTimeout); + types = await _app.GetCompiledAppDefinedTypes().TimeoutAfter(DefaultTimeout); Assert.Equal(2, types); } @@ -46,16 +49,16 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/23360", Queues = "Debian.9.Arm64;Debian.9.Arm64.Open;(Debian.9.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036;(Debian.9.Arm64)Ubuntu.1804.Armarch@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036")] public async Task DeleteCompiledFile() { - await _app.StartWatcherAsync(); + await _app.StartWatcherAsync().TimeoutAfter(DefaultTimeout); - var types = await _app.GetCompiledAppDefinedTypes(); + var types = await _app.GetCompiledAppDefinedTypes().TimeoutAfter(DefaultTimeout); Assert.Equal(2, types); var fileToChange = Path.Combine(_app.SourceDirectory, "include", "Foo.cs"); File.Delete(fileToChange); - await _app.HasRestarted(); - types = await _app.GetCompiledAppDefinedTypes(); + await _app.HasRestarted().TimeoutAfter(DefaultTimeout); + types = await _app.GetCompiledAppDefinedTypes().TimeoutAfter(DefaultTimeout); Assert.Equal(1, types); } @@ -63,16 +66,16 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/23360", Queues = "Debian.9.Arm64;Debian.9.Arm64.Open;(Debian.9.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036;(Debian.9.Arm64)Ubuntu.1804.Armarch@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036")] public async Task DeleteSourceFolder() { - await _app.StartWatcherAsync(); + await _app.StartWatcherAsync().TimeoutAfter(DefaultTimeout); - var types = await _app.GetCompiledAppDefinedTypes(); + var types = await _app.GetCompiledAppDefinedTypes().TimeoutAfter(DefaultTimeout); Assert.Equal(2, types); var folderToDelete = Path.Combine(_app.SourceDirectory, "include"); Directory.Delete(folderToDelete, recursive: true); - await _app.HasRestarted(); - types = await _app.GetCompiledAppDefinedTypes(); + await _app.HasRestarted().TimeoutAfter(DefaultTimeout); + types = await _app.GetCompiledAppDefinedTypes().TimeoutAfter(DefaultTimeout); Assert.Equal(1, types); } @@ -80,19 +83,19 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/23360", Queues = "Debian.9.Arm64;Debian.9.Arm64.Open;(Debian.9.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036;(Debian.9.Arm64)Ubuntu.1804.Armarch@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036")] public async Task RenameCompiledFile() { - await _app.StartWatcherAsync(); + await _app.StartWatcherAsync().TimeoutAfter(DefaultTimeout); var oldFile = Path.Combine(_app.SourceDirectory, "include", "Foo.cs"); var newFile = Path.Combine(_app.SourceDirectory, "include", "Foo_new.cs"); File.Move(oldFile, newFile); - await _app.HasRestarted(); + await _app.HasRestarted().TimeoutAfter(DefaultTimeout); } [Fact] public async Task ChangeExcludedFile() { - await _app.StartWatcherAsync(); + await _app.StartWatcherAsync().TimeoutAfter(DefaultTimeout); var changedFile = Path.Combine(_app.SourceDirectory, "exclude", "Baz.cs"); File.WriteAllText(changedFile, ""); @@ -105,11 +108,11 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests [Fact] public async Task ListsFiles() { - await _app.PrepareAsync(); + await _app.PrepareAsync().TimeoutAfter(DefaultTimeout); _app.Start(new[] { "--list" }); var cts = new CancellationTokenSource(); cts.CancelAfter(TimeSpan.FromSeconds(30)); - var lines = await _app.Process.GetAllOutputLinesAsync(cts.Token); + var lines = await _app.Process.GetAllOutputLinesAsync(cts.Token).TimeoutAfter(DefaultTimeout); var files = lines.Where(l => !l.StartsWith("watch :")); AssertEx.EqualFileList( From 763ccb21b53f281fdb0ae4c894d9040b7b6223a3 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Thu, 16 Jul 2020 13:21:56 +0200 Subject: [PATCH 08/75] [Blazor] Async disposable support for Blazor (#23813) * [Blazor] Support IAsyncDisposable in components * Handles async disposal of components within the Blazor pipeline. * Renders remain synchronous and don't wait for disposal to complete. * Synchronous disposal executions remain inlined. * Async disposal executions can trigger renders in different batches. * Async disposals are handled individually and not grouped based on the batch they were generated on. --- AspNetCore.sln | 93 +++++++ .../Components/src/RenderTree/Renderer.cs | 39 ++- .../src/Rendering/ComponentState.cs | 35 ++- .../Components/test/RendererTest.cs | 257 +++++++++++++++++- .../ServerExecutionTests/PrerenderingTest.cs | 9 + .../AsyncDisposableComponent.razor | 11 + .../AsyncDisposalDuringInitialization.razor | 25 ++ 7 files changed, 461 insertions(+), 8 deletions(-) create mode 100644 src/Components/test/testassets/BasicTestApp/AsyncDisposableComponent.razor create mode 100644 src/Components/test/testassets/BasicTestApp/AsyncDisposalDuringInitialization.razor diff --git a/AspNetCore.sln b/AspNetCore.sln index ca9dfcf281..aea9643f47 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1427,6 +1427,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Compon EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.Web.Extensions.Tests", "src\Components\Web.Extensions\test\Microsoft.AspNetCore.Components.Web.Extensions.Tests.csproj", "{157605CB-5170-4C1A-980F-4BAE42DB60DE}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{6126DCE4-9692-4EE2-B240-C65743572995}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BasicTestApp", "src\Components\test\testassets\BasicTestApp\BasicTestApp.csproj", "{46FB7E93-1294-4068-B80A-D4864F78277A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentsApp.App", "src\Components\test\testassets\ComponentsApp.App\ComponentsApp.App.csproj", "{25FA84DB-EEA7-4068-8E2D-F3D48B281C16}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentsApp.Server", "src\Components\test\testassets\ComponentsApp.Server\ComponentsApp.Server.csproj", "{19974360-4A63-425A-94DB-C2C940A3A97A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LazyTestContentPackage", "src\Components\test\testassets\LazyTestContentPackage\LazyTestContentPackage.csproj", "{ADF9C126-F322-4E34-AFD3-E626A4487206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestContentPackage", "src\Components\test\testassets\TestContentPackage\TestContentPackage.csproj", "{3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Components.TestServer", "src\Components\test\testassets\TestServer\Components.TestServer.csproj", "{8A59AF88-4A82-46ED-977D-D909001F8107}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -6729,6 +6743,78 @@ Global {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x64.Build.0 = Release|Any CPU {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x86.ActiveCfg = Release|Any CPU {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x86.Build.0 = Release|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Debug|x64.ActiveCfg = Debug|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Debug|x64.Build.0 = Debug|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Debug|x86.ActiveCfg = Debug|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Debug|x86.Build.0 = Debug|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Release|Any CPU.Build.0 = Release|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Release|x64.ActiveCfg = Release|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Release|x64.Build.0 = Release|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Release|x86.ActiveCfg = Release|Any CPU + {46FB7E93-1294-4068-B80A-D4864F78277A}.Release|x86.Build.0 = Release|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Debug|x64.ActiveCfg = Debug|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Debug|x64.Build.0 = Debug|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Debug|x86.ActiveCfg = Debug|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Debug|x86.Build.0 = Debug|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Release|Any CPU.Build.0 = Release|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Release|x64.ActiveCfg = Release|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Release|x64.Build.0 = Release|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Release|x86.ActiveCfg = Release|Any CPU + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16}.Release|x86.Build.0 = Release|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Debug|x64.ActiveCfg = Debug|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Debug|x64.Build.0 = Debug|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Debug|x86.ActiveCfg = Debug|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Debug|x86.Build.0 = Debug|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Release|Any CPU.Build.0 = Release|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Release|x64.ActiveCfg = Release|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Release|x64.Build.0 = Release|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Release|x86.ActiveCfg = Release|Any CPU + {19974360-4A63-425A-94DB-C2C940A3A97A}.Release|x86.Build.0 = Release|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Debug|x64.Build.0 = Debug|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Debug|x86.ActiveCfg = Debug|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Debug|x86.Build.0 = Debug|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Release|Any CPU.Build.0 = Release|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Release|x64.ActiveCfg = Release|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Release|x64.Build.0 = Release|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Release|x86.ActiveCfg = Release|Any CPU + {ADF9C126-F322-4E34-AFD3-E626A4487206}.Release|x86.Build.0 = Release|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Debug|x64.ActiveCfg = Debug|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Debug|x64.Build.0 = Debug|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Debug|x86.ActiveCfg = Debug|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Debug|x86.Build.0 = Debug|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Release|Any CPU.Build.0 = Release|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Release|x64.ActiveCfg = Release|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Release|x64.Build.0 = Release|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Release|x86.ActiveCfg = Release|Any CPU + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31}.Release|x86.Build.0 = Release|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Debug|x64.ActiveCfg = Debug|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Debug|x64.Build.0 = Debug|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Debug|x86.ActiveCfg = Debug|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Debug|x86.Build.0 = Debug|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Release|Any CPU.Build.0 = Release|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Release|x64.ActiveCfg = Release|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Release|x64.Build.0 = Release|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Release|x86.ActiveCfg = Release|Any CPU + {8A59AF88-4A82-46ED-977D-D909001F8107}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -7444,6 +7530,13 @@ Global {F71FE795-9923-461B-9809-BB1821A276D0} = {60D51C98-2CC0-40DF-B338-44154EFEE2FF} {8294A74F-7DAA-4B69-BC56-7634D93C9693} = {F71FE795-9923-461B-9809-BB1821A276D0} {157605CB-5170-4C1A-980F-4BAE42DB60DE} = {F71FE795-9923-461B-9809-BB1821A276D0} + {6126DCE4-9692-4EE2-B240-C65743572995} = {0508E463-0269-40C9-B5C2-3B600FB2A28B} + {46FB7E93-1294-4068-B80A-D4864F78277A} = {6126DCE4-9692-4EE2-B240-C65743572995} + {25FA84DB-EEA7-4068-8E2D-F3D48B281C16} = {6126DCE4-9692-4EE2-B240-C65743572995} + {19974360-4A63-425A-94DB-C2C940A3A97A} = {6126DCE4-9692-4EE2-B240-C65743572995} + {ADF9C126-F322-4E34-AFD3-E626A4487206} = {6126DCE4-9692-4EE2-B240-C65743572995} + {3D3C7D9B-E356-4DC6-80B1-3F6D7F15EE31} = {6126DCE4-9692-4EE2-B240-C65743572995} + {8A59AF88-4A82-46ED-977D-D909001F8107} = {6126DCE4-9692-4EE2-B240-C65743572995} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F} diff --git a/src/Components/Components/src/RenderTree/Renderer.cs b/src/Components/Components/src/RenderTree/Renderer.cs index 446243201f..e284e0c867 100644 --- a/src/Components/Components/src/RenderTree/Renderer.cs +++ b/src/Components/Components/src/RenderTree/Renderer.cs @@ -498,6 +498,7 @@ namespace Microsoft.AspNetCore.Components.RenderTree { ProcessRenderQueue(); } + ComponentsProfiling.Instance.End(); } @@ -634,11 +635,43 @@ namespace Microsoft.AspNetCore.Components.RenderTree var disposeComponentId = _batchBuilder.ComponentDisposalQueue.Dequeue(); var disposeComponentState = GetRequiredComponentState(disposeComponentId); Log.DisposingComponent(_logger, disposeComponentState); - if (!disposeComponentState.TryDisposeInBatch(_batchBuilder, out var exception)) + if (!(disposeComponentState.Component is IAsyncDisposable)) { - exceptions ??= new List(); - exceptions.Add(exception); + if (!disposeComponentState.TryDisposeInBatch(_batchBuilder, out var exception)) + { + exceptions ??= new List(); + exceptions.Add(exception); + } } + else + { + var result = disposeComponentState.DisposeInBatchAsync(_batchBuilder); + if (result.IsCompleted) + { + if (!result.IsCompletedSuccessfully) + { + exceptions ??= new List(); + exceptions.Add(result.Exception); + } + } + else + { + AddToPendingTasks(GetHandledAsynchronousDisposalErrorsTask(result)); + + async Task GetHandledAsynchronousDisposalErrorsTask(Task result) + { + try + { + await result; + } + catch (Exception e) + { + HandleException(e); + } + } + } + } + _componentStateById.Remove(disposeComponentId); _batchBuilder.DisposedComponentIds.Append(disposeComponentId); } diff --git a/src/Components/Components/src/Rendering/ComponentState.cs b/src/Components/Components/src/Rendering/ComponentState.cs index 7b755efd5d..760d3b8d1a 100644 --- a/src/Components/Components/src/Rendering/ComponentState.cs +++ b/src/Components/Components/src/Rendering/ComponentState.cs @@ -101,6 +101,13 @@ namespace Microsoft.AspNetCore.Components.Rendering exception = ex; } + CleanupComponentStateResources(batchBuilder); + + return exception == null; + } + + private void CleanupComponentStateResources(RenderBatchBuilder batchBuilder) + { // We don't expect these things to throw. RenderTreeDiffBuilder.DisposeFrames(batchBuilder, CurrentRenderTree.GetFrames()); @@ -110,8 +117,6 @@ namespace Microsoft.AspNetCore.Components.Rendering } DisposeBuffers(); - - return exception == null; } // Callers expect this method to always return a faulted task. @@ -222,5 +227,31 @@ namespace Microsoft.AspNetCore.Components.Rendering ((IDisposable)CurrentRenderTree).Dispose(); _latestDirectParametersSnapshot?.Dispose(); } + + public Task DisposeInBatchAsync(RenderBatchBuilder batchBuilder) + { + _componentWasDisposed = true; + + CleanupComponentStateResources(batchBuilder); + + try + { + var result = ((IAsyncDisposable)Component).DisposeAsync(); + if (result.IsCompletedSuccessfully) + { + return Task.CompletedTask; + } + else + { + // We know we are dealing with an exception that happened asynchronously, so return a task + // to the caller so that he can unwrap it. + return result.AsTask(); + } + } + catch (Exception e) + { + return Task.FromException(e); + } + } } } diff --git a/src/Components/Components/test/RendererTest.cs b/src/Components/Components/test/RendererTest.cs index 07022b2edf..fa47f72842 100644 --- a/src/Components/Components/test/RendererTest.cs +++ b/src/Components/Components/test/RendererTest.cs @@ -487,7 +487,8 @@ namespace Microsoft.AspNetCore.Components.Test public void DispatchEventHandlesSynchronousExceptionsFromEventHandlers() { // Arrange: Render a component with an event handler - var renderer = new TestRenderer { + var renderer = new TestRenderer + { ShouldHandleExceptions = true }; @@ -2086,6 +2087,238 @@ namespace Microsoft.AspNetCore.Components.Test Assert.Contains(exception2, aex.InnerExceptions); } + [Fact] + public void RenderBatch_HandlesSynchronousExceptionsInAsyncDisposableComponents() + { + // Arrange + var renderer = new TestRenderer { ShouldHandleExceptions = true }; + var exception1 = new InvalidOperationException(); + + var firstRender = true; + var component = new TestComponent(builder => + { + if (firstRender) + { + builder.AddContent(0, "Hello"); + builder.OpenComponent(1); + builder.AddAttribute(1, nameof(AsyncDisposableComponent.AsyncDisposeAction), (Func)(() => throw exception1)); + builder.CloseComponent(); + } + }); + var componentId = renderer.AssignRootComponentId(component); + component.TriggerRender(); + + // Act: Second render + firstRender = false; + component.TriggerRender(); + + // Assert: Applicable children are included in disposal list + Assert.Equal(2, renderer.Batches.Count); + Assert.Equal(new[] { 1, }, renderer.Batches[1].DisposedComponentIDs); + + // Outer component is still alive and not disposed. + Assert.False(component.Disposed); + var aex = Assert.IsType(Assert.Single(renderer.HandledExceptions)); + var innerException = Assert.Single(aex.Flatten().InnerExceptions); + Assert.Same(exception1, innerException); + } + + [Fact] + public void RenderBatch_CanDisposeSynchrounousAsyncDisposableImplementations() + { + // Arrange + var renderer = new TestRenderer { ShouldHandleExceptions = true }; + + var firstRender = true; + var component = new TestComponent(builder => + { + if (firstRender) + { + builder.AddContent(0, "Hello"); + builder.OpenComponent(1); + builder.AddAttribute(1, nameof(AsyncDisposableComponent.AsyncDisposeAction), (Func)(() => default)); + builder.CloseComponent(); + } + }); + var componentId = renderer.AssignRootComponentId(component); + component.TriggerRender(); + + // Act: Second render + firstRender = false; + component.TriggerRender(); + + // Assert: Applicable children are included in disposal list + Assert.Equal(2, renderer.Batches.Count); + Assert.Equal(new[] { 1, }, renderer.Batches[1].DisposedComponentIDs); + + // Outer component is still alive and not disposed. + Assert.False(component.Disposed); + Assert.Empty(renderer.HandledExceptions); + } + + [Fact] + public void RenderBatch_CanDisposeAsynchronousAsyncDisposables() + { + // Arrange + var semaphore = new Semaphore(0, 1); + var renderer = new TestRenderer { ShouldHandleExceptions = true }; + renderer.OnExceptionHandled = () => semaphore.Release(); + var exception1 = new InvalidOperationException(); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var firstRender = true; + var component = new TestComponent(builder => + { + if (firstRender) + { + builder.AddContent(0, "Hello"); + builder.OpenComponent(1); + builder.AddAttribute(1, nameof(AsyncDisposableComponent.AsyncDisposeAction), (Func)(async () => { await tcs.Task; })); + builder.CloseComponent(); + } + }); + + var componentId = renderer.AssignRootComponentId(component); + component.TriggerRender(); + // Act: Second render + firstRender = false; + component.TriggerRender(); + + // Assert: Applicable children are included in disposal list + Assert.Equal(2, renderer.Batches.Count); + Assert.Equal(new[] { 1, }, renderer.Batches[1].DisposedComponentIDs); + + // Outer component is still alive and not disposed. + Assert.False(component.Disposed); + Assert.Empty(renderer.HandledExceptions); + + // Continue execution + tcs.SetResult(); + Assert.False(semaphore.WaitOne(10)); + Assert.Empty(renderer.HandledExceptions); + } + + [Fact] + public void RenderBatch_HandlesAsynchronousExceptionsInAsyncDisposableComponents() + { + // Arrange + var semaphore = new Semaphore(0, 1); + var renderer = new TestRenderer { ShouldHandleExceptions = true }; + renderer.OnExceptionHandled = () => semaphore.Release(); + var exception1 = new InvalidOperationException(); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var firstRender = true; + var component = new TestComponent(builder => + { + if (firstRender) + { + builder.AddContent(0, "Hello"); + builder.OpenComponent(1); + builder.AddAttribute(1, nameof(AsyncDisposableComponent.AsyncDisposeAction), (Func)(async () => { await tcs.Task; throw exception1; })); + builder.CloseComponent(); + } + }); + var componentId = renderer.AssignRootComponentId(component); + component.TriggerRender(); + // Act: Second render + firstRender = false; + component.TriggerRender(); + + // Assert: Applicable children are included in disposal list + Assert.Equal(2, renderer.Batches.Count); + Assert.Equal(new[] { 1, }, renderer.Batches[1].DisposedComponentIDs); + + // Outer component is still alive and not disposed. + Assert.False(component.Disposed); + Assert.Empty(renderer.HandledExceptions); + + // Continue execution + tcs.SetResult(); + semaphore.WaitOne(); + var aex = Assert.IsType(Assert.Single(renderer.HandledExceptions)); + Assert.Same(exception1, aex); + } + + [Fact] + public void RenderBatch_ReportsSynchronousCancelationsAsErrors() + { + // Arrange + var renderer = new TestRenderer { ShouldHandleExceptions = true }; + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var firstRender = true; + var component = new TestComponent(builder => + { + if (firstRender) + { + builder.AddContent(0, "Hello"); + builder.OpenComponent(1); + builder.AddAttribute(1, nameof(AsyncDisposableComponent.AsyncDisposeAction), (Func)(() => throw new TaskCanceledException())); + builder.CloseComponent(); + } + }); + var componentId = renderer.AssignRootComponentId(component); + component.TriggerRender(); + + // Act: Second render + firstRender = false; + component.TriggerRender(); + + // Assert: Applicable children are included in disposal list + Assert.Equal(2, renderer.Batches.Count); + Assert.Equal(new[] { 1, }, renderer.Batches[1].DisposedComponentIDs); + + // Outer component is still alive and not disposed. + Assert.False(component.Disposed); + var aex = Assert.IsType(Assert.Single(renderer.HandledExceptions)); + Assert.IsType(Assert.Single(aex.Flatten().InnerExceptions)); + } + + [Fact] + public void RenderBatch_ReportsAsynchronousCancelationsAsErrors() + { + // Arrange + var semaphore = new Semaphore(0, 1); + var renderer = new TestRenderer { ShouldHandleExceptions = true }; + renderer.OnExceptionHandled += () => semaphore.Release(); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var firstRender = true; + var component = new TestComponent(builder => + { + if (firstRender) + { + builder.AddContent(0, "Hello"); + builder.OpenComponent(1); + builder.AddAttribute( + 1, + nameof(AsyncDisposableComponent.AsyncDisposeAction), + (Func)(() => new ValueTask(tcs.Task))); + builder.CloseComponent(); + } + }); + var componentId = renderer.AssignRootComponentId(component); + component.TriggerRender(); + + // Act: Second render + firstRender = false; + component.TriggerRender(); + + // Assert: Applicable children are included in disposal list + Assert.Equal(2, renderer.Batches.Count); + Assert.Equal(new[] { 1, }, renderer.Batches[1].DisposedComponentIDs); + + // Outer component is still alive and not disposed. + Assert.False(component.Disposed); + Assert.Empty(renderer.HandledExceptions); + + // Cancel execution + tcs.SetCanceled(); + + semaphore.WaitOne(); + var aex = Assert.IsType(Assert.Single(renderer.HandledExceptions)); + } + [Fact] public void RenderBatch_DoesNotDisposeComponentMultipleTimes() { @@ -2589,7 +2822,7 @@ namespace Microsoft.AspNetCore.Components.Test // Act: Toggle the checkbox var eventArgs = new ChangeEventArgs { Value = true }; - var renderTask = renderer.DispatchEventAsync(checkboxChangeEventHandlerId, eventArgs); + var renderTask = renderer.DispatchEventAsync(checkboxChangeEventHandlerId, eventArgs); Assert.True(renderTask.IsCompletedSuccessfully); var latestBatch = renderer.Batches.Last(); @@ -3768,7 +4001,7 @@ namespace Microsoft.AspNetCore.Components.Test requestedType => Assert.Equal(typeof(TestComponent), requestedType)); } - private class TestComponentActivator : IComponentActivator where TResult: IComponent, new() + private class TestComponentActivator : IComponentActivator where TResult : IComponent, new() { public List RequestedComponentTypes { get; } = new List(); @@ -4147,6 +4380,24 @@ namespace Microsoft.AspNetCore.Components.Test } } + private class AsyncDisposableComponent : AutoRenderComponent, IAsyncDisposable + { + public bool Disposed { get; private set; } + + [Parameter] + public Func AsyncDisposeAction { get; set; } + + public ValueTask DisposeAsync() + { + Disposed = true; + return AsyncDisposeAction == null ? default : AsyncDisposeAction.Invoke(); + } + + protected override void BuildRenderTree(RenderTreeBuilder builder) + { + } + } + class TestAsyncRenderer : TestRenderer { public Task NextUpdateDisplayReturnTask { get; set; } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs index a1c9e8e9b1..9d2f4e3b4e 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs @@ -44,6 +44,15 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests Browser.Equal("1", () => Browser.FindElement(By.Id("count")).Text); } + [Fact] + public void PrerenderingWaitsForAsyncDisposableComponents() + { + Navigate("/prerendered/prerendered-async-disposal"); + + // Prerendered output shows "not connected" + Browser.Equal("After async disposal", () => Browser.FindElement(By.Id("disposal-message")).Text); + } + [Fact] public void CanUseJSInteropFromOnAfterRenderAsync() { diff --git a/src/Components/test/testassets/BasicTestApp/AsyncDisposableComponent.razor b/src/Components/test/testassets/BasicTestApp/AsyncDisposableComponent.razor new file mode 100644 index 0000000000..70abb1c86d --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/AsyncDisposableComponent.razor @@ -0,0 +1,11 @@ +@implements IAsyncDisposable +@code{ + [Parameter] public EventCallback SetMessage { get; set; } + + public async ValueTask DisposeAsync() + { + await SetMessage.InvokeAsync("Before async disposal"); + await Task.Yield(); + await SetMessage.InvokeAsync("After async disposal"); + } +} diff --git a/src/Components/test/testassets/BasicTestApp/AsyncDisposalDuringInitialization.razor b/src/Components/test/testassets/BasicTestApp/AsyncDisposalDuringInitialization.razor new file mode 100644 index 0000000000..3a6b2eac8c --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/AsyncDisposalDuringInitialization.razor @@ -0,0 +1,25 @@ +@page "/prerendered-async-disposal" + +

+ This component shows that prerendering will work for components that implement IAsyncDisposable to finish + disposing before rendering the output as html. +

+ +

@_message

+ +@if (!_hideComponent) +{ + +} + +@code { + private bool _hideComponent = false; + private string _message = "Uninitialized"; + protected override async Task OnInitializedAsync() + { + await Task.Yield(); + _hideComponent = true; + } + + private void SetMessage(string message) => _message = message; +} From 410eb6db539dea66ac37afb2b8889952ce28f135 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2020 06:57:05 -0700 Subject: [PATCH 09/75] Sync shared code from runtime (#24000) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../runtime/Quic/Implementations/Mock/MockConnection.cs | 4 ++-- src/Shared/runtime/Quic/Implementations/Mock/MockListener.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Shared/runtime/Quic/Implementations/Mock/MockConnection.cs b/src/Shared/runtime/Quic/Implementations/Mock/MockConnection.cs index 361474bcb1..cba2f936ef 100644 --- a/src/Shared/runtime/Quic/Implementations/Mock/MockConnection.cs +++ b/src/Shared/runtime/Quic/Implementations/Mock/MockConnection.cs @@ -93,7 +93,7 @@ namespace System.Net.Quic.Implementations.Mock int bytesRead = 0; do { - bytesRead += await socket.ReceiveAsync(buffer.AsMemory().Slice(bytesRead), SocketFlags.None).ConfigureAwait(false); + bytesRead += await socket.ReceiveAsync(buffer.AsMemory().Slice(bytesRead), SocketFlags.None, cancellationToken).ConfigureAwait(false); } while (bytesRead != buffer.Length); int peerListenPort = BinaryPrimitives.ReadInt32LittleEndian(buffer); @@ -163,7 +163,7 @@ namespace System.Net.Quic.Implementations.Mock int bytesRead = 0; do { - bytesRead += await socket.ReceiveAsync(buffer.AsMemory().Slice(bytesRead), SocketFlags.None).ConfigureAwait(false); + bytesRead += await socket.ReceiveAsync(buffer.AsMemory().Slice(bytesRead), SocketFlags.None, cancellationToken).ConfigureAwait(false); } while (bytesRead != buffer.Length); long streamId = BinaryPrimitives.ReadInt64LittleEndian(buffer); diff --git a/src/Shared/runtime/Quic/Implementations/Mock/MockListener.cs b/src/Shared/runtime/Quic/Implementations/Mock/MockListener.cs index f4c0cfdf2c..e7b24548d2 100644 --- a/src/Shared/runtime/Quic/Implementations/Mock/MockListener.cs +++ b/src/Shared/runtime/Quic/Implementations/Mock/MockListener.cs @@ -45,7 +45,7 @@ namespace System.Net.Quic.Implementations.Mock int bytesRead = 0; do { - bytesRead += await socket.ReceiveAsync(buffer.AsMemory().Slice(bytesRead), SocketFlags.None).ConfigureAwait(false); + bytesRead += await socket.ReceiveAsync(buffer.AsMemory().Slice(bytesRead), SocketFlags.None, cancellationToken).ConfigureAwait(false); } while (bytesRead != buffer.Length); int peerListenPort = BinaryPrimitives.ReadInt32LittleEndian(buffer); From cee763b189e37ca082977537a18b572282798829 Mon Sep 17 00:00:00 2001 From: Michael Randers-Pehrson Date: Thu, 16 Jul 2020 10:44:16 -0400 Subject: [PATCH 10/75] [Blazor][Fixes #22895] Page header can be covered by other elements when there is a lot of content on the page (#24005) Adds z-index to top-row to avoid the header being covered by other elements --- src/Components/Samples/BlazorServerApp/wwwroot/css/site.css | 1 + .../content/BlazorServerWeb-CSharp/wwwroot/css/site.css | 1 + .../ComponentsWebAssembly-CSharp/Client/wwwroot/css/app.css | 1 + 3 files changed, 3 insertions(+) diff --git a/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css b/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css index c15c2e1556..bdca6fbfcb 100644 --- a/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css +++ b/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css @@ -24,6 +24,7 @@ app { height: 3.5rem; display: flex; align-items: center; + z-index: 10; } .main { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css index 2ebdff93e6..dd1b08bd85 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css @@ -24,6 +24,7 @@ app { height: 3.5rem; display: flex; align-items: center; + z-index: 10; } .main { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/css/app.css b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/css/app.css index 0c0c94d820..76b9667ff5 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/css/app.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/css/app.css @@ -24,6 +24,7 @@ app { height: 3.5rem; display: flex; align-items: center; + z-index: 10; } .main { From cf77999a3b6bdb9d861ca7bf157b1264d67f3130 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Thu, 16 Jul 2020 19:46:39 +0430 Subject: [PATCH 11/75] Dispost CancellationTokenSource in WebHostExtensions (#23969) --- .../Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs | 1 + src/Hosting/Hosting/src/WebHostExtensions.cs | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs index b87c115dea..0ed621abe1 100644 --- a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs +++ b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs @@ -50,6 +50,7 @@ namespace Microsoft.AspNetCore.Hosting public static void Run(this Microsoft.AspNetCore.Hosting.IWebHost host) { } [System.Diagnostics.DebuggerStepThroughAttribute] public static System.Threading.Tasks.Task RunAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) { throw null; } + [System.Diagnostics.DebuggerStepThroughAttribute] public static System.Threading.Tasks.Task StopAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.TimeSpan timeout) { throw null; } public static void WaitForShutdown(this Microsoft.AspNetCore.Hosting.IWebHost host) { } [System.Diagnostics.DebuggerStepThroughAttribute] diff --git a/src/Hosting/Hosting/src/WebHostExtensions.cs b/src/Hosting/Hosting/src/WebHostExtensions.cs index b1b317272b..fe77b13443 100644 --- a/src/Hosting/Hosting/src/WebHostExtensions.cs +++ b/src/Hosting/Hosting/src/WebHostExtensions.cs @@ -19,9 +19,10 @@ namespace Microsoft.AspNetCore.Hosting /// The timeout for stopping gracefully. Once expired the /// server may terminate any remaining active connections. /// A that completes when the stops. - public static Task StopAsync(this IWebHost host, TimeSpan timeout) + public static async Task StopAsync(this IWebHost host, TimeSpan timeout) { - return host.StopAsync(new CancellationTokenSource(timeout).Token); + using var cts = new CancellationTokenSource(timeout); + await host.StopAsync(cts.Token); } /// From 2c66f9ee64553afc01f4839c169cee297b6376ed Mon Sep 17 00:00:00 2001 From: Adrian Wright Date: Thu, 16 Jul 2020 17:21:30 +0100 Subject: [PATCH 12/75] fix various minor spelling mistakes --- .../Components/src/Routing/OptionalTypeRouteConstraint.cs | 2 +- src/Components/Components/test/ParameterViewTest.Assignment.cs | 2 +- src/Components/Components/test/RendererTest.cs | 2 +- .../Components/test/Routing/RouteTableFactoryTests.cs | 2 +- src/Components/Components/test/Routing/RouterTest.cs | 2 +- src/Components/Server/test/Circuits/RemoteRendererTest.cs | 2 +- src/Shared/Components/ServerComponentSerializationSettings.cs | 2 +- .../test/Internal/Protocol/MessagePackHubProtocolTestBase.cs | 2 +- src/submodules/MessagePack-CSharp | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Components/Components/src/Routing/OptionalTypeRouteConstraint.cs b/src/Components/Components/src/Routing/OptionalTypeRouteConstraint.cs index 426b26b8f2..dcd0238ea4 100644 --- a/src/Components/Components/src/Routing/OptionalTypeRouteConstraint.cs +++ b/src/Components/Components/src/Routing/OptionalTypeRouteConstraint.cs @@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Components.Routing public override bool Match(string pathSegment, out object? convertedValue) { // Unset values are set to null in the Parameters object created in - // the RouteContext. To match this pattern, unset optional parmeters + // the RouteContext. To match this pattern, unset optional parameters // are converted to null. if (string.IsNullOrEmpty(pathSegment)) { diff --git a/src/Components/Components/test/ParameterViewTest.Assignment.cs b/src/Components/Components/test/ParameterViewTest.Assignment.cs index 7dd8537f4c..f7d170129d 100644 --- a/src/Components/Components/test/ParameterViewTest.Assignment.cs +++ b/src/Components/Components/test/ParameterViewTest.Assignment.cs @@ -71,7 +71,7 @@ namespace Microsoft.AspNetCore.Components } [Fact] - public void IncomingParameterMatchesOverridenParameter_ThatDoesNotHasAttribute() + public void IncomingParameterMatchesOverriddenParameter_ThatDoesNotHasAttribute() { // Test for https://github.com/dotnet/aspnetcore/issues/13162 // Arrange diff --git a/src/Components/Components/test/RendererTest.cs b/src/Components/Components/test/RendererTest.cs index fa47f72842..d1f8bb5623 100644 --- a/src/Components/Components/test/RendererTest.cs +++ b/src/Components/Components/test/RendererTest.cs @@ -2124,7 +2124,7 @@ namespace Microsoft.AspNetCore.Components.Test } [Fact] - public void RenderBatch_CanDisposeSynchrounousAsyncDisposableImplementations() + public void RenderBatch_CanDisposeSynchronousAsyncDisposableImplementations() { // Arrange var renderer = new TestRenderer { ShouldHandleExceptions = true }; diff --git a/src/Components/Components/test/Routing/RouteTableFactoryTests.cs b/src/Components/Components/test/Routing/RouteTableFactoryTests.cs index ec5370d578..f8893aa0a4 100644 --- a/src/Components/Components/test/Routing/RouteTableFactoryTests.cs +++ b/src/Components/Components/test/Routing/RouteTableFactoryTests.cs @@ -476,7 +476,7 @@ namespace Microsoft.AspNetCore.Components.Test.Routing [Fact] - public void PrefersLiteralTemplateOverParmeterizedTemplates() + public void PrefersLiteralTemplateOverParameterizedTemplates() { // Arrange var routeTable = new TestRouteTableBuilder() diff --git a/src/Components/Components/test/Routing/RouterTest.cs b/src/Components/Components/test/Routing/RouterTest.cs index d9476f3498..7e8a78b382 100644 --- a/src/Components/Components/test/Routing/RouterTest.cs +++ b/src/Components/Components/test/Routing/RouterTest.cs @@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Components.Test.Routing var janTaskException = await Record.ExceptionAsync(() => janTask); var febTaskException = await Record.ExceptionAsync(() => febTask); - // Assert neither exceution threw an exception + // Assert neither execution threw an exception Assert.Null(janTaskException); Assert.Null(febTaskException); // Assert refresh should've only been called once for the second route diff --git a/src/Components/Server/test/Circuits/RemoteRendererTest.cs b/src/Components/Server/test/Circuits/RemoteRendererTest.cs index 19f2ff0034..063685d80f 100644 --- a/src/Components/Server/test/Circuits/RemoteRendererTest.cs +++ b/src/Components/Server/test/Circuits/RemoteRendererTest.cs @@ -296,7 +296,7 @@ namespace Microsoft.AspNetCore.Components.Web.Rendering exceptions.Add(e); }; - // Receive the ack for the intial batch + // Receive the ack for the initial batch _ = renderer.OnRenderCompletedAsync(2, null); // Receive the ack for the second batch _ = renderer.OnRenderCompletedAsync(2, null); diff --git a/src/Shared/Components/ServerComponentSerializationSettings.cs b/src/Shared/Components/ServerComponentSerializationSettings.cs index 7aabb013b5..db061bf52a 100644 --- a/src/Shared/Components/ServerComponentSerializationSettings.cs +++ b/src/Shared/Components/ServerComponentSerializationSettings.cs @@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Components }; // This setting is not configurable, but realistically we don't expect an app to take more than 30 seconds from when - // it got rendrered to when the circuit got started, and having an expiration on the serialized server-components helps + // it got rendered to when the circuit got started, and having an expiration on the serialized server-components helps // prevent old payloads from being replayed. public static readonly TimeSpan DataExpiration = TimeSpan.FromMinutes(5); } diff --git a/src/SignalR/common/SignalR.Common/test/Internal/Protocol/MessagePackHubProtocolTestBase.cs b/src/SignalR/common/SignalR.Common/test/Internal/Protocol/MessagePackHubProtocolTestBase.cs index 0192641dad..8a3a9562b7 100644 --- a/src/SignalR/common/SignalR.Common/test/Internal/Protocol/MessagePackHubProtocolTestBase.cs +++ b/src/SignalR/common/SignalR.Common/test/Internal/Protocol/MessagePackHubProtocolTestBase.cs @@ -85,7 +85,7 @@ namespace Microsoft.AspNetCore.SignalR.Common.Tests.Internal.Protocol message: new InvocationMessage(null, "Target", new object[] { 42 }, new string[] { "__test_id__" }), binary: "lgGAwKZUYXJnZXSRKpGrX190ZXN0X2lkX18="), new ProtocolTestData( - name: "InvocationWithMulitpleStreams", + name: "InvocationWithMultipleStreams", message: new InvocationMessage(null, "Target", Array.Empty(), new string[] { "__test_id__", "__test_id2__" }), binary: "lgGAwKZUYXJnZXSQkqtfX3Rlc3RfaWRfX6xfX3Rlc3RfaWQyX18="), diff --git a/src/submodules/MessagePack-CSharp b/src/submodules/MessagePack-CSharp index a4a14ce447..df2a065423 160000 --- a/src/submodules/MessagePack-CSharp +++ b/src/submodules/MessagePack-CSharp @@ -1 +1 @@ -Subproject commit a4a14ce447e4ef694af1a485fb672db35e766111 +Subproject commit df2a065423545aa57ce7fafa1eefdd37c22ef1a5 From b8261dfe9d13bf87cbcf84885ed13effe431b8ee Mon Sep 17 00:00:00 2001 From: Josh Dadak Date: Thu, 16 Jul 2020 18:59:39 +0100 Subject: [PATCH 13/75] Return null in getCacheToUseIfEnabled when the protocol is not https (#24012) Addresses #23082 If served over http the cache is assumed compromised, this can happen when the page first loads over http before the https redirect. --- src/Components/Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Platform/WebAssemblyResourceLoader.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index e177aa1b24..1d85c8fd46 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=45)}([,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=c();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,m),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var u=JSON.stringify(i,m);c().beginInvokeDotNetFromJS(a,e,t,r,u)}catch(e){l(a,!1,e)}return s}function c(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function d(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),v=m+f.count(a),y=m;y0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(46),c=n(4),l=n(49),f=n(35),d=n(19),p=n(50),h=n(51),m=n(52),v=n(5),y=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(y)throw new Error("Blazor has already started.");return y=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){v.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}v.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,v=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),v.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function v(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(33),a=n(34);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],v=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,v,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),v=m+f.count(a),y=m;y0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(46),c=n(4),l=n(49),f=n(35),d=n(19),p=n(50),h=n(51),m=n(52),v=n(5),y=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(y)throw new Error("Blazor has already started.");return y=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){v.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}v.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,v=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),v.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function v(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(33),a=n(34);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],v=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,v,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] Date: Thu, 16 Jul 2020 14:31:15 -0400 Subject: [PATCH 14/75] Blazor: Add empty InvokeAsync() overload for EventCallback (#24021) Adds an empty InvokeAsync() overload for both EventCallback and EventCallbackOfT. Updated tests to simply use this new overload instead of InvokeAsync(null). Addresses #23603. --- ...rosoft.AspNetCore.Components.netcoreapp.cs | 2 ++ .../Components/src/EventCallback.cs | 7 ++++++ .../Components/src/EventCallbackOfT.cs | 7 ++++++ .../Components/test/EventCallbackTest.cs | 24 +++++++++---------- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/Components/Components/ref/Microsoft.AspNetCore.Components.netcoreapp.cs b/src/Components/Components/ref/Microsoft.AspNetCore.Components.netcoreapp.cs index b6c4f834e2..beb27d0f0c 100644 --- a/src/Components/Components/ref/Microsoft.AspNetCore.Components.netcoreapp.cs +++ b/src/Components/Components/ref/Microsoft.AspNetCore.Components.netcoreapp.cs @@ -142,6 +142,7 @@ namespace Microsoft.AspNetCore.Components public static readonly Microsoft.AspNetCore.Components.EventCallbackFactory Factory; public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent? receiver, System.MulticastDelegate? @delegate) { throw null; } public bool HasDelegate { get { throw null; } } + public System.Threading.Tasks.Task InvokeAsync() { throw null; } public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; } } public sealed partial class EventCallbackFactory @@ -217,6 +218,7 @@ namespace Microsoft.AspNetCore.Components public static readonly Microsoft.AspNetCore.Components.EventCallback Empty; public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent? receiver, System.MulticastDelegate? @delegate) { throw null; } public bool HasDelegate { get { throw null; } } + public System.Threading.Tasks.Task InvokeAsync() { throw null; } public System.Threading.Tasks.Task InvokeAsync(TValue arg) { throw null; } } [System.AttributeUsageAttribute(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)] diff --git a/src/Components/Components/src/EventCallback.cs b/src/Components/Components/src/EventCallback.cs index 0acc823124..c053f810ab 100644 --- a/src/Components/Components/src/EventCallback.cs +++ b/src/Components/Components/src/EventCallback.cs @@ -61,6 +61,13 @@ namespace Microsoft.AspNetCore.Components return Receiver.HandleEventAsync(new EventCallbackWorkItem(Delegate), arg); } + /// + /// Invokes the delegate associated with this binding and dispatches an event notification to the + /// appropriate component. + /// + /// A which completes asynchronously once event processing has completed. + public Task InvokeAsync() => InvokeAsync(null!); + object? IEventCallback.UnpackForRenderTree() { return RequiresExplicitReceiver ? (object)this : Delegate; diff --git a/src/Components/Components/src/EventCallbackOfT.cs b/src/Components/Components/src/EventCallbackOfT.cs index 12072171fa..23f7888826 100644 --- a/src/Components/Components/src/EventCallbackOfT.cs +++ b/src/Components/Components/src/EventCallbackOfT.cs @@ -56,6 +56,13 @@ namespace Microsoft.AspNetCore.Components return Receiver.HandleEventAsync(new EventCallbackWorkItem(Delegate), arg); } + /// + /// Invokes the delegate associated with this binding and dispatches an event notification to the + /// appropriate component. + /// + /// A which completes asynchronously once event processing has completed. + public Task InvokeAsync() => InvokeAsync(default!); + internal EventCallback AsUntyped() { return new EventCallback(Receiver ?? Delegate?.Target as IHandleEvent, Delegate); diff --git a/src/Components/Components/test/EventCallbackTest.cs b/src/Components/Components/test/EventCallbackTest.cs index 25405c2180..57c2538e48 100644 --- a/src/Components/Components/test/EventCallbackTest.cs +++ b/src/Components/Components/test/EventCallbackTest.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Components var callback = default(EventCallback); // Act & Assert (Does not throw) - await callback.InvokeAsync(null); + await callback.InvokeAsync(); } [Fact] @@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Components var callback = default(EventCallback); // Act & Assert (Does not throw) - await callback.InvokeAsync(null); + await callback.InvokeAsync(); } @@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(null, (Action)(() => runCount++)); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(null, (Action)(() => runCount++)); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -71,7 +71,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Action)(() => runCount++)); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -108,7 +108,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Action)((e) => { arg = e; runCount++; })); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -184,7 +184,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Func)(() => { runCount++; return Task.CompletedTask; })); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -221,7 +221,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Func)((e) => { arg = e; runCount++; return Task.CompletedTask; })); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -297,7 +297,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Action)(() => runCount++)); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -334,7 +334,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Action)((e) => { arg = e; runCount++; })); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -373,7 +373,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Func)(() => { runCount++; return Task.CompletedTask; })); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert @@ -410,7 +410,7 @@ namespace Microsoft.AspNetCore.Components var callback = new EventCallback(component, (Func)((e) => { arg = e; runCount++; return Task.CompletedTask; })); // Act - await callback.InvokeAsync(null); + await callback.InvokeAsync(); // Assert From 30c33aad11f0a5771423b859ec946db840da42b5 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Thu, 16 Jul 2020 11:47:47 -0700 Subject: [PATCH 15/75] Quarantine flaky tests (#23995) --- .../BlazorTemplates.Tests/BlazorWasmTemplateTest.cs | 3 +++ src/ProjectTemplates/test/BaselineTest.cs | 3 ++- src/ProjectTemplates/test/MvcTemplateTest.cs | 1 + .../integrationtests/StaticWebAssetsIntegrationTest.cs | 1 + src/Tools/dotnet-watch/test/AppWithDepsTests.cs | 1 + 5 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs index decd986856..1a72d92d54 100644 --- a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs +++ b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs @@ -132,6 +132,7 @@ namespace Templates.Test } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/23992")] public async Task BlazorWasmStandalonePwaTemplate_Works() { var project = await ProjectFactory.GetOrCreateProject("blazorstandalonepwa", Output); @@ -251,6 +252,7 @@ namespace Templates.Test } [ConditionalFact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/23992")] // LocalDB doesn't work on non Windows platforms [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)] public Task BlazorWasmHostedTemplate_IndividualAuth_Works_WithLocalDB() @@ -259,6 +261,7 @@ namespace Templates.Test } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/23992")] public Task BlazorWasmHostedTemplate_IndividualAuth_Works_WithOutLocalDB() { return BlazorWasmHostedTemplate_IndividualAuth_Works(false); diff --git a/src/ProjectTemplates/test/BaselineTest.cs b/src/ProjectTemplates/test/BaselineTest.cs index 243d13d67f..eabacc336d 100644 --- a/src/ProjectTemplates/test/BaselineTest.cs +++ b/src/ProjectTemplates/test/BaselineTest.cs @@ -71,6 +71,7 @@ namespace Templates.Test [Theory] [MemberData(nameof(TemplateBaselines))] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/23993")] public async Task Template_Produces_The_Right_Set_Of_FilesAsync(string arguments, string[] expectedFiles) { Project = await ProjectFactory.GetOrCreateProject("baseline" + SanitizeArgs(arguments), Output); @@ -151,4 +152,4 @@ namespace Templates.Test } } } -} \ No newline at end of file +} diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs index 3bcb51416a..c88493ccd1 100644 --- a/src/ProjectTemplates/test/MvcTemplateTest.cs +++ b/src/ProjectTemplates/test/MvcTemplateTest.cs @@ -223,6 +223,7 @@ namespace Templates.Test } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/23993")] public async Task MvcTemplate_RazorRuntimeCompilation_BuildsAndPublishes() { Project = await ProjectFactory.GetOrCreateProject("mvc_rc", Output); diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/StaticWebAssetsIntegrationTest.cs b/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/StaticWebAssetsIntegrationTest.cs index 49d2172f6e..63c0afee0f 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/StaticWebAssetsIntegrationTest.cs +++ b/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/StaticWebAssetsIntegrationTest.cs @@ -82,6 +82,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests } [ConditionalFact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/18543")] [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)] [InitializeTestProject("AppWithPackageAndP2PReferenceAndRID", additionalProjects: new[] { "ClassLibrary", "ClassLibrary2" })] public async Task Publish_CopiesStaticWebAssetsToDestinationFolder_PublishSingleFile() diff --git a/src/Tools/dotnet-watch/test/AppWithDepsTests.cs b/src/Tools/dotnet-watch/test/AppWithDepsTests.cs index bef740ad10..b4f9510ad9 100644 --- a/src/Tools/dotnet-watch/test/AppWithDepsTests.cs +++ b/src/Tools/dotnet-watch/test/AppWithDepsTests.cs @@ -20,6 +20,7 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests } [ConditionalFact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/23994")] [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/23360", Queues = "Windows.10.Arm64;Windows.10.Arm64.Open;Debian.9.Arm64;Debian.9.Arm64.Open;(Debian.9.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036;(Debian.9.Arm64)Ubuntu.1804.Armarch@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036")] public async Task ChangeFileInDependency() { From bbb5bb7755ef4de4f8832feda095f08db3f220c1 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Thu, 16 Jul 2020 19:24:32 +0000 Subject: [PATCH 16/75] Update setup instructions in BuildFromSource (#24025) --- docs/BuildFromSource.md | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/docs/BuildFromSource.md b/docs/BuildFromSource.md index 4fe7763153..95b08ab146 100644 --- a/docs/BuildFromSource.md +++ b/docs/BuildFromSource.md @@ -4,6 +4,22 @@ Building ASP.NET Core from source allows you to tweak and customize ASP.NET Core See for known issues and to track ongoing work. +## Clone the source code + +ASP.NET Core uses git submodules to include the source from a few other projects. + +For a new copy of the project, run: + +```ps1 +git clone --recursive https://github.com/dotnet/aspnetcore +``` + +To update an existing copy, run: + +```ps1 +git submodule update --init --recursive +``` + ## Install pre-requisites ### Windows @@ -52,22 +68,6 @@ Building ASP.NET Core on macOS or Linux requires: * OpenJDK * Oracle's JDK -## Clone the source code - -ASP.NET Core uses git submodules to include the source from a few other projects. - -For a new copy of the project, run: - -```ps1 -git clone --recursive https://github.com/dotnet/aspnetcore -``` - -To update an existing copy, run: - -```ps1 -git submodule update --init --recursive -``` - **NOTE** some ISPs have been know to use web filtering software that has caused issues with git repository cloning, if you experience issues cloning this repo please review ## Building in Visual Studio @@ -86,6 +86,9 @@ Before opening our .sln/.slnf files in Visual Studio or VS Code, you need to per > :bulb: Pro tip: you will also want to run this command after pulling large sets of changes. On the master > branch, we regularly update the versions of .NET Core SDK required to build the repo. > You will need to restart Visual Studio every time we update the .NET Core SDK. + > To allow executing the setup script, you may need to update the execution policy on your machine. + You can do so by running the `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser` command + in PowerShell. For more information on execution policies, you can read the [execution policy docs](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy). 2. Use the `startvs.cmd` script to open Visual Studio .sln/.slnf files. This script first sets the required environment variables. From 615e70bf844234e77ab597942c1f7763a3e54258 Mon Sep 17 00:00:00 2001 From: Adrian Wright <47532258+adrianwright109@users.noreply.github.com> Date: Thu, 16 Jul 2020 20:30:10 +0100 Subject: [PATCH 17/75] Update src/Components/Components/test/ParameterViewTest.Assignment.cs Co-authored-by: Steve Sanderson --- src/Components/Components/test/ParameterViewTest.Assignment.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Components/test/ParameterViewTest.Assignment.cs b/src/Components/Components/test/ParameterViewTest.Assignment.cs index f7d170129d..8e2fb5d600 100644 --- a/src/Components/Components/test/ParameterViewTest.Assignment.cs +++ b/src/Components/Components/test/ParameterViewTest.Assignment.cs @@ -71,7 +71,7 @@ namespace Microsoft.AspNetCore.Components } [Fact] - public void IncomingParameterMatchesOverriddenParameter_ThatDoesNotHasAttribute() + public void IncomingParameterMatchesOverriddenParameter_ThatDoesNotHaveAttribute() { // Test for https://github.com/dotnet/aspnetcore/issues/13162 // Arrange From b8a0fa74dcd41d43880fcaf2b35c532787c84ddf Mon Sep 17 00:00:00 2001 From: Keiichi IGUCHI Date: Fri, 17 Jul 2020 04:43:38 +0900 Subject: [PATCH 18/75] arcade requires MSBuild 16.3 (#21878) --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 974708a611..023704b7ac 100644 --- a/global.json +++ b/global.json @@ -15,7 +15,7 @@ "Git": "2.22.0", "jdk": "11.0.3", "vs": { - "version": "16.0", + "version": "16.3", "components": [ "Microsoft.VisualStudio.Component.VC.ATL", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", From 5b10c2d1fa50dee0b3ba127273aa5cc184d40b68 Mon Sep 17 00:00:00 2001 From: Adrian Wright Date: Thu, 16 Jul 2020 22:23:55 +0100 Subject: [PATCH 19/75] undo changes to submodule --- src/submodules/MessagePack-CSharp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/submodules/MessagePack-CSharp b/src/submodules/MessagePack-CSharp index df2a065423..a4a14ce447 160000 --- a/src/submodules/MessagePack-CSharp +++ b/src/submodules/MessagePack-CSharp @@ -1 +1 @@ -Subproject commit df2a065423545aa57ce7fafa1eefdd37c22ef1a5 +Subproject commit a4a14ce447e4ef694af1a485fb672db35e766111 From 5bc2c49ed560663c57198df3c6e92273c319173b Mon Sep 17 00:00:00 2001 From: Haytam Zanid <34218324+zHaytam@users.noreply.github.com> Date: Thu, 16 Jul 2020 23:08:09 +0100 Subject: [PATCH 20/75] Add DisplayName to inputs (#24029) Add a `DisplayName` parameter to `InputBase`, which is used in validation messages instead of `FieldIdentifier.FieldName`. - This works for `InputDate`, `InputNumber` and `InputSelect`. - Extracted some shared code, just like what @StephanZahariev did in his PR. Addresses #11414 --- ...ft.AspNetCore.Components.Web.netcoreapp.cs | 2 + src/Components/Web/src/Forms/InputBase.cs | 6 ++ src/Components/Web/src/Forms/InputDate.cs | 2 +- .../Web/src/Forms/InputExtensions.cs | 2 +- src/Components/Web/src/Forms/InputNumber.cs | 2 +- .../Web/test/Forms/InputBaseTest.cs | 78 +++------------ .../Web/test/Forms/InputDateTest.cs | 56 +++++++++++ .../Web/test/Forms/InputNumberTest.cs | 55 +++++++++++ .../Web/test/Forms/InputRenderer.cs | 29 ++++++ .../Web/test/Forms/InputSelectTest.cs | 97 +++++++++---------- .../Web/test/Forms/TestInputHostComponent.cs | 41 ++++++++ 11 files changed, 253 insertions(+), 117 deletions(-) create mode 100644 src/Components/Web/test/Forms/InputDateTest.cs create mode 100644 src/Components/Web/test/Forms/InputNumberTest.cs create mode 100644 src/Components/Web/test/Forms/InputRenderer.cs create mode 100644 src/Components/Web/test/Forms/TestInputHostComponent.cs diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs index 795dbe6ea3..14ff4f7367 100644 --- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs +++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs @@ -60,6 +60,8 @@ namespace Microsoft.AspNetCore.Components.Forms [System.Diagnostics.CodeAnalysis.AllowNullAttribute] protected TValue CurrentValue { get { throw null; } set { } } protected string? CurrentValueAsString { get { throw null; } set { } } + [Microsoft.AspNetCore.Components.ParameterAttribute] + public string? DisplayName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } protected Microsoft.AspNetCore.Components.Forms.EditContext EditContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } protected internal Microsoft.AspNetCore.Components.Forms.FieldIdentifier FieldIdentifier { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } [Microsoft.AspNetCore.Components.ParameterAttribute] diff --git a/src/Components/Web/src/Forms/InputBase.cs b/src/Components/Web/src/Forms/InputBase.cs index 5a8fceecf8..08fd03c92a 100644 --- a/src/Components/Web/src/Forms/InputBase.cs +++ b/src/Components/Web/src/Forms/InputBase.cs @@ -50,6 +50,12 @@ namespace Microsoft.AspNetCore.Components.Forms /// [Parameter] public Expression>? ValueExpression { get; set; } + /// + /// Gets or sets the display name for this field. + /// This value is used when generating error messages when the input value fails to parse correctly. + /// + [Parameter] public string? DisplayName { get; set; } + /// /// Gets the associated . /// diff --git a/src/Components/Web/src/Forms/InputDate.cs b/src/Components/Web/src/Forms/InputDate.cs index e7132988b9..4372646c7b 100644 --- a/src/Components/Web/src/Forms/InputDate.cs +++ b/src/Components/Web/src/Forms/InputDate.cs @@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Components.Forms } else { - validationErrorMessage = string.Format(ParsingErrorMessage, FieldIdentifier.FieldName); + validationErrorMessage = string.Format(ParsingErrorMessage, DisplayName ?? FieldIdentifier.FieldName); return false; } } diff --git a/src/Components/Web/src/Forms/InputExtensions.cs b/src/Components/Web/src/Forms/InputExtensions.cs index a1ace92141..748af5c78e 100644 --- a/src/Components/Web/src/Forms/InputExtensions.cs +++ b/src/Components/Web/src/Forms/InputExtensions.cs @@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Components.Forms else { result = default; - validationErrorMessage = $"The {input.FieldIdentifier.FieldName} field is not valid."; + validationErrorMessage = $"The {input.DisplayName ?? input.FieldIdentifier.FieldName} field is not valid."; return false; } } diff --git a/src/Components/Web/src/Forms/InputNumber.cs b/src/Components/Web/src/Forms/InputNumber.cs index 515fc5ceac..51ac2c5241 100644 --- a/src/Components/Web/src/Forms/InputNumber.cs +++ b/src/Components/Web/src/Forms/InputNumber.cs @@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Components.Forms } else { - validationErrorMessage = string.Format(ParsingErrorMessage, FieldIdentifier.FieldName); + validationErrorMessage = string.Format(ParsingErrorMessage, DisplayName ?? FieldIdentifier.FieldName); return false; } } diff --git a/src/Components/Web/test/Forms/InputBaseTest.cs b/src/Components/Web/test/Forms/InputBaseTest.cs index 26464b8386..6a8da5ca76 100644 --- a/src/Components/Web/test/Forms/InputBaseTest.cs +++ b/src/Components/Web/test/Forms/InputBaseTest.cs @@ -4,10 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Linq.Expressions; using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Rendering; -using Microsoft.AspNetCore.Components.RenderTree; using Microsoft.AspNetCore.Components.Test.Helpers; using Xunit; @@ -35,7 +32,7 @@ namespace Microsoft.AspNetCore.Components.Forms // Arrange var model = new TestModel(); var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.StringProperty }; - await RenderAndGetTestInputComponentAsync(rootComponent); + await InputRenderer.RenderAndGetComponent(rootComponent); // Act/Assert rootComponent.EditContext = new EditContext(model); @@ -51,7 +48,7 @@ namespace Microsoft.AspNetCore.Components.Forms var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model) }; // Act/Assert - var ex = await Assert.ThrowsAsync(() => RenderAndGetTestInputComponentAsync(rootComponent)); + var ex = await Assert.ThrowsAsync(() => InputRenderer.RenderAndGetComponent(rootComponent)); Assert.Contains($"{typeof(TestInputComponent)} requires a value for the 'ValueExpression' parameter. Normally this is provided automatically when using 'bind-Value'.", ex.Message); } @@ -68,7 +65,7 @@ namespace Microsoft.AspNetCore.Components.Forms }; // Act - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Assert Assert.Equal("some value", inputComponent.CurrentValue); @@ -87,7 +84,7 @@ namespace Microsoft.AspNetCore.Components.Forms }; // Act - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Assert Assert.Same(rootComponent.EditContext, inputComponent.EditContext); @@ -106,7 +103,7 @@ namespace Microsoft.AspNetCore.Components.Forms }; // Act - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Assert Assert.Equal(FieldIdentifier.Create(() => model.StringProperty), inputComponent.FieldIdentifier); @@ -123,7 +120,7 @@ namespace Microsoft.AspNetCore.Components.Forms Value = "initial value", ValueExpression = () => model.StringProperty }; - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); Assert.Equal("initial value", inputComponent.CurrentValue); // Act @@ -146,7 +143,7 @@ namespace Microsoft.AspNetCore.Components.Forms ValueChanged = val => valueChangedCallLog.Add(val), ValueExpression = () => model.StringProperty }; - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); Assert.Empty(valueChangedCallLog); // Act @@ -169,7 +166,7 @@ namespace Microsoft.AspNetCore.Components.Forms ValueChanged = val => valueChangedCallLog.Add(val), ValueExpression = () => model.StringProperty }; - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); Assert.Empty(valueChangedCallLog); // Act @@ -190,7 +187,7 @@ namespace Microsoft.AspNetCore.Components.Forms Value = "initial value", ValueExpression = () => model.StringProperty }; - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); Assert.False(rootComponent.EditContext.IsModified(() => model.StringProperty)); // Act @@ -213,7 +210,7 @@ namespace Microsoft.AspNetCore.Components.Forms var fieldIdentifier = FieldIdentifier.Create(() => model.StringProperty); // Act/Assert: Initially, it's valid and unmodified - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); Assert.Equal("valid", inputComponent.CssClass); // no Class was specified // Act/Assert: Modify the field @@ -251,7 +248,7 @@ namespace Microsoft.AspNetCore.Components.Forms var fieldIdentifier = FieldIdentifier.Create(() => model.StringProperty); // Act/Assert - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); Assert.Equal("my-class other-class valid", inputComponent.CssClass); // Act/Assert: Retains custom class when changing field class @@ -270,7 +267,7 @@ namespace Microsoft.AspNetCore.Components.Forms Value = new DateTime(1915, 3, 2), ValueExpression = () => model.DateProperty }; - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act/Assert Assert.Equal("1915/03/02", inputComponent.CurrentValueAsString); @@ -289,7 +286,7 @@ namespace Microsoft.AspNetCore.Components.Forms ValueExpression = () => model.DateProperty }; var fieldIdentifier = FieldIdentifier.Create(() => model.DateProperty); - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); var numValidationStateChanges = 0; rootComponent.EditContext.OnValidationStateChanged += (sender, eventArgs) => { numValidationStateChanges++; }; @@ -319,7 +316,7 @@ namespace Microsoft.AspNetCore.Components.Forms ValueExpression = () => model.DateProperty }; var fieldIdentifier = FieldIdentifier.Create(() => model.DateProperty); - var inputComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); var numValidationStateChanges = 0; rootComponent.EditContext.OnValidationStateChanged += (sender, eventArgs) => { numValidationStateChanges++; }; @@ -470,21 +467,6 @@ namespace Microsoft.AspNetCore.Components.Forms Assert.Equal("userSpecifiedValue", component.AdditionalAttributes["aria-invalid"]); } - private static TComponent FindComponent(CapturedBatch batch) - => batch.ReferenceFrames - .Where(f => f.FrameType == RenderTreeFrameType.Component) - .Select(f => f.Component) - .OfType() - .Single(); - - private static async Task RenderAndGetTestInputComponentAsync(TestInputHostComponent hostComponent) where TComponent : TestInputComponent - { - var testRenderer = new TestRenderer(); - var componentId = testRenderer.AssignRootComponentId(hostComponent); - await testRenderer.RenderRootComponentAsync(componentId); - return FindComponent(testRenderer.Batches.Single()); - } - class TestModel { public string StringProperty { get; set; } @@ -530,7 +512,7 @@ namespace Microsoft.AspNetCore.Components.Forms } } - class TestDateInputComponent : TestInputComponent + private class TestDateInputComponent : TestInputComponent { protected override string FormatValueAsString(DateTime value) => value.ToString("yyyy/MM/dd"); @@ -549,35 +531,5 @@ namespace Microsoft.AspNetCore.Components.Forms } } } - - class TestInputHostComponent : AutoRenderComponent where TComponent : TestInputComponent - { - public Dictionary AdditionalAttributes { get; set; } - - public EditContext EditContext { get; set; } - - public TValue Value { get; set; } - - public Action ValueChanged { get; set; } - - public Expression> ValueExpression { get; set; } - - protected override void BuildRenderTree(RenderTreeBuilder builder) - { - builder.OpenComponent>(0); - builder.AddAttribute(1, "Value", EditContext); - builder.AddAttribute(2, "ChildContent", new RenderFragment(childBuilder => - { - childBuilder.OpenComponent(0); - childBuilder.AddAttribute(0, "Value", Value); - childBuilder.AddAttribute(1, "ValueChanged", - EventCallback.Factory.Create(this, ValueChanged)); - childBuilder.AddAttribute(2, "ValueExpression", ValueExpression); - childBuilder.AddMultipleAttributes(3, AdditionalAttributes); - childBuilder.CloseComponent(); - })); - builder.CloseComponent(); - } - } } } diff --git a/src/Components/Web/test/Forms/InputDateTest.cs b/src/Components/Web/test/Forms/InputDateTest.cs new file mode 100644 index 0000000000..9c6f87b832 --- /dev/null +++ b/src/Components/Web/test/Forms/InputDateTest.cs @@ -0,0 +1,56 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Xunit; + +namespace Microsoft.AspNetCore.Components.Forms +{ + public class InputDateTest + { + [Fact] + public async Task ValidationErrorUsesDisplayAttributeName() + { + // Arrange + var model = new TestModel(); + var rootComponent = new TestInputHostComponent + { + EditContext = new EditContext(model), + ValueExpression = () => model.DateProperty, + AdditionalAttributes = new Dictionary + { + { "DisplayName", "Date property" } + } + }; + var fieldIdentifier = FieldIdentifier.Create(() => model.DateProperty); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); + + // Act + await inputComponent.SetCurrentValueAsStringAsync("invalidDate"); + + // Assert + var validationMessages = rootComponent.EditContext.GetValidationMessages(fieldIdentifier); + Assert.NotEmpty(validationMessages); + Assert.Contains("The Date property field must be a date.", validationMessages); + } + + private class TestModel + { + public DateTime DateProperty { get; set; } + } + + private class TestInputDateComponent : InputDate + { + public async Task SetCurrentValueAsStringAsync(string value) + { + // This is equivalent to the subclass writing to CurrentValueAsString + // (e.g., from @bind), except to simplify the test code there's an InvokeAsync + // here. In production code it wouldn't normally be required because @bind + // calls run on the sync context anyway. + await InvokeAsync(() => { base.CurrentValueAsString = value; }); + } + } + } +} diff --git a/src/Components/Web/test/Forms/InputNumberTest.cs b/src/Components/Web/test/Forms/InputNumberTest.cs new file mode 100644 index 0000000000..6916f0e06e --- /dev/null +++ b/src/Components/Web/test/Forms/InputNumberTest.cs @@ -0,0 +1,55 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; +using System.Threading.Tasks; +using Xunit; + +namespace Microsoft.AspNetCore.Components.Forms +{ + public class InputNumberTest + { + [Fact] + public async Task ValidationErrorUsesDisplayAttributeName() + { + // Arrange + var model = new TestModel(); + var rootComponent = new TestInputHostComponent + { + EditContext = new EditContext(model), + ValueExpression = () => model.SomeNumber, + AdditionalAttributes = new Dictionary + { + { "DisplayName", "Some number" } + } + }; + var fieldIdentifier = FieldIdentifier.Create(() => model.SomeNumber); + var inputComponent = await InputRenderer.RenderAndGetComponent(rootComponent); + + // Act + await inputComponent.SetCurrentValueAsStringAsync("notANumber"); + + // Assert + var validationMessages = rootComponent.EditContext.GetValidationMessages(fieldIdentifier); + Assert.NotEmpty(validationMessages); + Assert.Contains("The Some number field must be a number.", validationMessages); + } + + private class TestModel + { + public int SomeNumber { get; set; } + } + + private class TestInputNumberComponent : InputNumber + { + public async Task SetCurrentValueAsStringAsync(string value) + { + // This is equivalent to the subclass writing to CurrentValueAsString + // (e.g., from @bind), except to simplify the test code there's an InvokeAsync + // here. In production code it wouldn't normally be required because @bind + // calls run on the sync context anyway. + await InvokeAsync(() => { base.CurrentValueAsString = value; }); + } + } + } +} diff --git a/src/Components/Web/test/Forms/InputRenderer.cs b/src/Components/Web/test/Forms/InputRenderer.cs new file mode 100644 index 0000000000..3c83981915 --- /dev/null +++ b/src/Components/Web/test/Forms/InputRenderer.cs @@ -0,0 +1,29 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.RenderTree; +using Microsoft.AspNetCore.Components.Test.Helpers; + +namespace Microsoft.AspNetCore.Components.Forms +{ + internal static class InputRenderer + { + public static async Task RenderAndGetComponent(TestInputHostComponent hostComponent) + where TComponent : InputBase + { + var testRenderer = new TestRenderer(); + var componentId = testRenderer.AssignRootComponentId(hostComponent); + await testRenderer.RenderRootComponentAsync(componentId); + return FindComponent(testRenderer.Batches.Single()); + } + + private static TComponent FindComponent(CapturedBatch batch) + => batch.ReferenceFrames + .Where(f => f.FrameType == RenderTreeFrameType.Component) + .Select(f => f.Component) + .OfType() + .Single(); + } +} diff --git a/src/Components/Web/test/Forms/InputSelectTest.cs b/src/Components/Web/test/Forms/InputSelectTest.cs index 65c3351e5e..8945867fd0 100644 --- a/src/Components/Web/test/Forms/InputSelectTest.cs +++ b/src/Components/Web/test/Forms/InputSelectTest.cs @@ -2,12 +2,8 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Linq; -using System.Linq.Expressions; +using System.Collections.Generic; using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Rendering; -using Microsoft.AspNetCore.Components.RenderTree; -using Microsoft.AspNetCore.Components.Test.Helpers; using Xunit; namespace Microsoft.AspNetCore.Components.Forms @@ -19,12 +15,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NotNullableEnum }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act inputSelectComponent.CurrentValueAsString = "Two"; @@ -38,12 +34,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NotNullableEnum }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act inputSelectComponent.CurrentValueAsString = ""; @@ -57,12 +53,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NullableEnum }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act inputSelectComponent.CurrentValueAsString = "Two"; @@ -76,12 +72,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NullableEnum }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act inputSelectComponent.CurrentValueAsString = ""; @@ -96,12 +92,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NotNullableGuid }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act var guid = Guid.NewGuid(); @@ -117,12 +113,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NullableGuid }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act var guid = Guid.NewGuid(); @@ -138,12 +134,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NotNullableInt }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act inputSelectComponent.CurrentValueAsString = "42"; @@ -158,12 +154,12 @@ namespace Microsoft.AspNetCore.Components.Forms { // Arrange var model = new TestModel(); - var rootComponent = new TestInputSelectHostComponent + var rootComponent = new TestInputHostComponent> { EditContext = new EditContext(model), ValueExpression = () => model.NullableInt }; - var inputSelectComponent = await RenderAndGetTestInputComponentAsync(rootComponent); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); // Act inputSelectComponent.CurrentValueAsString = "42"; @@ -172,19 +168,30 @@ namespace Microsoft.AspNetCore.Components.Forms Assert.Equal(42, inputSelectComponent.CurrentValue); } - private static TestInputSelect FindInputSelectComponent(CapturedBatch batch) - => batch.ReferenceFrames - .Where(f => f.FrameType == RenderTreeFrameType.Component) - .Select(f => f.Component) - .OfType>() - .Single(); - - private static async Task> RenderAndGetTestInputComponentAsync(TestInputSelectHostComponent hostComponent) + [Fact] + public async Task ValidationErrorUsesDisplayAttributeName() { - var testRenderer = new TestRenderer(); - var componentId = testRenderer.AssignRootComponentId(hostComponent); - await testRenderer.RenderRootComponentAsync(componentId); - return FindInputSelectComponent(testRenderer.Batches.Single()); + // Arrange + var model = new TestModel(); + var rootComponent = new TestInputHostComponent> + { + EditContext = new EditContext(model), + ValueExpression = () => model.NotNullableInt, + AdditionalAttributes = new Dictionary + { + { "DisplayName", "Some number" } + } + }; + var fieldIdentifier = FieldIdentifier.Create(() => model.NotNullableInt); + var inputSelectComponent = await InputRenderer.RenderAndGetComponent(rootComponent); + + // Act + await inputSelectComponent.SetCurrentValueAsStringAsync("invalidNumber"); + + // Assert + var validationMessages = rootComponent.EditContext.GetValidationMessages(fieldIdentifier); + Assert.NotEmpty(validationMessages); + Assert.Contains("The Some number field is not valid.", validationMessages); } enum TestEnum @@ -218,25 +225,13 @@ namespace Microsoft.AspNetCore.Components.Forms get => base.CurrentValueAsString; set => base.CurrentValueAsString = value; } - } - - class TestInputSelectHostComponent : AutoRenderComponent - { - public EditContext EditContext { get; set; } - - public Expression> ValueExpression { get; set; } - - protected override void BuildRenderTree(RenderTreeBuilder builder) + public async Task SetCurrentValueAsStringAsync(string value) { - builder.OpenComponent>(0); - builder.AddAttribute(1, "Value", EditContext); - builder.AddAttribute(2, "ChildContent", new RenderFragment(childBuilder => - { - childBuilder.OpenComponent>(0); - childBuilder.AddAttribute(0, "ValueExpression", ValueExpression); - childBuilder.CloseComponent(); - })); - builder.CloseComponent(); + // This is equivalent to the subclass writing to CurrentValueAsString + // (e.g., from @bind), except to simplify the test code there's an InvokeAsync + // here. In production code it wouldn't normally be required because @bind + // calls run on the sync context anyway. + await InvokeAsync(() => { base.CurrentValueAsString = value; }); } } } diff --git a/src/Components/Web/test/Forms/TestInputHostComponent.cs b/src/Components/Web/test/Forms/TestInputHostComponent.cs new file mode 100644 index 0000000000..4eb194a718 --- /dev/null +++ b/src/Components/Web/test/Forms/TestInputHostComponent.cs @@ -0,0 +1,41 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using Microsoft.AspNetCore.Components.Rendering; +using Microsoft.AspNetCore.Components.Test.Helpers; + +namespace Microsoft.AspNetCore.Components.Forms +{ + internal class TestInputHostComponent : AutoRenderComponent where TComponent : InputBase + { + public Dictionary AdditionalAttributes { get; set; } + + public EditContext EditContext { get; set; } + + public TValue Value { get; set; } + + public Action ValueChanged { get; set; } + + public Expression> ValueExpression { get; set; } + + protected override void BuildRenderTree(RenderTreeBuilder builder) + { + builder.OpenComponent>(0); + builder.AddAttribute(1, "Value", EditContext); + builder.AddAttribute(2, "ChildContent", new RenderFragment(childBuilder => + { + childBuilder.OpenComponent(0); + childBuilder.AddAttribute(0, "Value", Value); + childBuilder.AddAttribute(1, "ValueChanged", + EventCallback.Factory.Create(this, ValueChanged)); + childBuilder.AddAttribute(2, "ValueExpression", ValueExpression); + childBuilder.AddMultipleAttributes(3, AdditionalAttributes); + childBuilder.CloseComponent(); + })); + builder.CloseComponent(); + } + } +} From 6940249de2623e0135b62aabbdc6c8386515d4ec Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Thu, 16 Jul 2020 15:13:24 -0700 Subject: [PATCH 21/75] Handle exception thrown by ProcessName during ProcessEx timeout (#23990) * Handle exception thrown by ProcessName during ProcessEx timeout * Update src/Shared/Process/ProcessEx.cs Co-authored-by: Brennan * PR feedback Co-authored-by: Brennan --- src/Shared/Process/ProcessEx.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Shared/Process/ProcessEx.cs b/src/Shared/Process/ProcessEx.cs index c4f0002d5c..ad7d06b1ed 100644 --- a/src/Shared/Process/ProcessEx.cs +++ b/src/Shared/Process/ProcessEx.cs @@ -49,10 +49,15 @@ namespace Microsoft.AspNetCore.Internal _exited = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + // We greedily create a timeout exception message even though a timeout is unlikely to happen for two reasons: + // 1. To make it less likely for Process getters to throw exceptions like "System.InvalidOperationException: Process has exited, ..." + // 2. To ensure if/when exceptions are thrown from Process getters, these exceptions can easily be observed. + var timeoutExMessage = $"Process proc {proc.ProcessName} {proc.StartInfo.Arguments} timed out after {DefaultProcessTimeout}."; + _processTimeoutCts = new CancellationTokenSource(timeout); _processTimeoutCts.Token.Register(() => { - _exited.TrySetException(new TimeoutException($"Process proc {proc.ProcessName} {proc.StartInfo.Arguments} timed out after {DefaultProcessTimeout}.")); + _exited.TrySetException(new TimeoutException(timeoutExMessage)); }); } From 049f421cff998de19d97df586f404138190106f8 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Thu, 16 Jul 2020 22:20:56 +0000 Subject: [PATCH 22/75] Resolve type error when running JS tests locally (#24026) * Resolve type error when running JS tests locally * Update pre-compiled JavaScript --- src/Components/Web.JS/dist/Release/blazor.server.js | 8 ++++---- src/Components/Web.JS/dist/Release/blazor.webassembly.js | 2 +- src/Components/Web.JS/src/Platform/Profiling.ts | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index d31bbe381a..b71a196406 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -1,19 +1,19 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=53)}([function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return l})),n.d(t,"g",(function(){return f})),n.d(t,"i",(function(){return h})),n.d(t,"j",(function(){return p})),n.d(t,"f",(function(){return d})),n.d(t,"d",(function(){return g})),n.d(t,"b",(function(){return y})),n.d(t,"h",(function(){return v}));var r=n(0),o=n(6),i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(14))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return O})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return P})),n.d(t,"TransferFormat",(function(){return x})),n.d(t,"NullLogger",(function(){return $.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return _})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),C=n(44);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,_=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case P.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new Y(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case P.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case P.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=P[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it was disabled by the client."),new Error("'"+P[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return x[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it does not support the requested transfer format '"+x[n]+"'."),new Error("'"+P[r]+"' does not support "+x[n]+".");if(r===P.WebSockets&&!this.options.WebSocket||r===P.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it is not supported in your environment.'"),new Error("'"+P[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+P[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var G=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return K(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(14))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return O})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return P})),n.d(t,"TransferFormat",(function(){return x})),n.d(t,"NullLogger",(function(){return $.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return _})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),C=n(45);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,_=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case P.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new Y(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case P.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case P.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=P[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it was disabled by the client."),new Error("'"+P[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return x[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it does not support the requested transfer format '"+x[n]+"'."),new Error("'"+P[r]+"' does not support "+x[n]+".");if(r===P.WebSockets&&!this.options.WebSocket||r===P.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it is not supported in your environment.'"),new Error("'"+P[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+P[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var G=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return K(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(57),i=n(21),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(38).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(69)},f=n(39),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(40);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(67).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(55),o=n(56),i=n(57);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(58),i=n(21),a=n(71),s=n(74),c=n(75);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(60);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(61),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(39).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(67).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(70)},f=n(40),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(41);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(68).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(59); /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */function o(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o=0;u--)if(l[u]!==f[u])return!1;for(u=l.length-1;u>=0;u--)if(s=l[u],!m(e[s],t[s],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function S(e,t,n,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!o&&v(o,n,"Missing expected exception"+r);var i="string"==typeof r,s=!e&&o&&!n;if((!e&&a.isError(o)&&i&&E(o,n)||s)&&v(o,n,"Got unwanted exception"+r),e&&o&&n&&!E(o,n)||!e&&o)throw o}h.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return g(y(e.actual),128)+" "+e.operator+" "+g(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,o=d(t),i=r.indexOf("\n"+o);if(i>=0){var a=r.indexOf("\n",i+1);r=r.substring(a+1)}this.stack=r}}},a.inherits(h.AssertionError,Error),h.fail=v,h.ok=b,h.equal=function(e,t,n){e!=t&&v(e,t,n,"==",h.equal)},h.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",h.notEqual)},h.deepEqual=function(e,t,n){m(e,t,!1)||v(e,t,n,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(e,t,n){m(e,t,!0)||v(e,t,n,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(e,t,n){m(e,t,!1)&&v(e,t,n,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function e(t,n,r){m(t,n,!0)&&v(t,n,r,"notDeepStrictEqual",e)},h.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",h.strictEqual)},h.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",h.notStrictEqual)},h.throws=function(e,t,n){S(!0,e,t,n)},h.doesNotThrow=function(e,t,n){S(!1,e,t,n)},h.ifError=function(e){if(e)throw e},h.strict=r((function e(t,n){t||v(t,!0,n,"==",e)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var C=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}}).call(this,n(9))},function(e,t,n){"use strict"; + */function o(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o=0;u--)if(l[u]!==f[u])return!1;for(u=l.length-1;u>=0;u--)if(s=l[u],!m(e[s],t[s],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function S(e,t,n,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!o&&v(o,n,"Missing expected exception"+r);var i="string"==typeof r,s=!e&&o&&!n;if((!e&&a.isError(o)&&i&&E(o,n)||s)&&v(o,n,"Got unwanted exception"+r),e&&o&&n&&!E(o,n)||!e&&o)throw o}h.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return g(y(e.actual),128)+" "+e.operator+" "+g(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,o=d(t),i=r.indexOf("\n"+o);if(i>=0){var a=r.indexOf("\n",i+1);r=r.substring(a+1)}this.stack=r}}},a.inherits(h.AssertionError,Error),h.fail=v,h.ok=b,h.equal=function(e,t,n){e!=t&&v(e,t,n,"==",h.equal)},h.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",h.notEqual)},h.deepEqual=function(e,t,n){m(e,t,!1)||v(e,t,n,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(e,t,n){m(e,t,!0)||v(e,t,n,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(e,t,n){m(e,t,!1)&&v(e,t,n,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function e(t,n,r){m(t,n,!0)&&v(t,n,r,"notDeepStrictEqual",e)},h.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",h.strictEqual)},h.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",h.notStrictEqual)},h.throws=function(e,t,n){S(!0,e,t,n)},h.doesNotThrow=function(e,t,n){S(!1,e,t,n)},h.ifError=function(e){if(e)throw e},h.strict=r((function e(t,n){t||v(t,!0,n,"==",e)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var C=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}}).call(this,n(9))},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,c=a(e),u=1;u0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(68),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(9))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,c=1,u={},l=!1,f=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){d(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(e){var t=f.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n0?this._transform(null,t,n):n()},e.exports.decoder=c,e.exports.encoder=s},function(e,t,n){(t=e.exports=n(37)).Stream=t,t.Readable=t,t.Writable=n(42),t.Duplex=n(10),t.Transform=n(43),t.PassThrough=n(72)},function(e,t,n){"use strict";e.exports=i;var r=n(43),o=n(20);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(16),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){var r=n(21);function o(e){Error.call(this),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||"unable to decode"}n(36).inherits(o,Error),e.exports=function(e){return function(e){e instanceof r||(e=r().append(e));var t=i(e);if(t)return e.consume(t.bytesConsumed),t.value;throw new o};function t(e,t,n){return t>=n+e}function n(e,t){return{value:e,bytesConsumed:t}}function i(e,r){r=void 0===r?0:r;var o=e.length-r;if(o<=0)return null;var i,l,f,h=e.readUInt8(r),p=0;if(!function(e,t){var n=function(e){switch(e){case 196:return 2;case 197:return 3;case 198:return 5;case 199:return 3;case 200:return 4;case 201:return 6;case 202:return 5;case 203:return 9;case 204:return 2;case 205:return 3;case 206:return 5;case 207:return 9;case 208:return 2;case 209:return 3;case 210:return 5;case 211:return 9;case 212:return 3;case 213:return 4;case 214:return 6;case 215:return 10;case 216:return 18;case 217:return 2;case 218:return 3;case 219:return 5;case 222:return 3;default:return-1}}(e);return!(-1!==n&&t=0;f--)p+=e.readUInt8(r+f+1)*Math.pow(2,8*(7-f));return n(p,9);case 208:return n(p=e.readInt8(r+1),2);case 209:return n(p=e.readInt16BE(r+1),3);case 210:return n(p=e.readInt32BE(r+1),5);case 211:return n(p=function(e,t){var n=128==(128&e[t]);if(n)for(var r=1,o=t+7;o>=t;o--){var i=(255^e[o])+r;e[o]=255&i,r=i>>8}var a=e.readUInt32BE(t+0),s=e.readUInt32BE(t+4);return(4294967296*a+s)*(n?-1:1)}(e.slice(r+1,r+9),0),9);case 202:return n(p=e.readFloatBE(r+1),5);case 203:return n(p=e.readDoubleBE(r+1),9);case 217:return t(i=e.readUInt8(r+1),o,2)?n(p=e.toString("utf8",r+2,r+2+i),2+i):null;case 218:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.toString("utf8",r+3,r+3+i),3+i):null;case 219:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.toString("utf8",r+5,r+5+i),5+i):null;case 196:return t(i=e.readUInt8(r+1),o,2)?n(p=e.slice(r+2,r+2+i),2+i):null;case 197:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.slice(r+3,r+3+i),3+i):null;case 198:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.slice(r+5,r+5+i),5+i):null;case 220:return o<3?null:(i=e.readUInt16BE(r+1),a(e,r,i,3));case 221:return o<5?null:(i=e.readUInt32BE(r+1),a(e,r,i,5));case 222:return i=e.readUInt16BE(r+1),s(e,r,i,3);case 223:throw new Error("map too big to decode in JS");case 212:return c(e,r,1);case 213:return c(e,r,2);case 214:return c(e,r,4);case 215:return c(e,r,8);case 216:return c(e,r,16);case 199:return i=e.readUInt8(r+1),l=e.readUInt8(r+2),t(i,o,3)?u(e,r,l,i,3):null;case 200:return i=e.readUInt16BE(r+1),l=e.readUInt8(r+3),t(i,o,4)?u(e,r,l,i,4):null;case 201:return i=e.readUInt32BE(r+1),l=e.readUInt8(r+5),t(i,o,6)?u(e,r,l,i,6):null}if(144==(240&h))return a(e,r,i=15&h,1);if(128==(240&h))return s(e,r,i=15&h,1);if(160==(224&h))return t(i=31&h,o,1)?n(p=e.toString("utf8",r+1,r+i+1),i+1):null;if(h>=224)return n(p=h-256,1);if(h<128)return n(h,1);throw new Error("not implemented yet")}function a(e,t,r,o){var a,s=[],c=0;for(t+=o,a=0;a.1)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,a){function s(c,u){var l,f,h;if(void 0===c)throw new Error("undefined is not encodable in msgpack!");if(null===c)(l=r.allocUnsafe(1))[0]=192;else if(!0===c)(l=r.allocUnsafe(1))[0]=195;else if(!1===c)(l=r.allocUnsafe(1))[0]=194;else if("string"==typeof c)(f=r.byteLength(c))<32?((l=r.allocUnsafe(1+f))[0]=160|f,f>0&&l.write(c,1)):f<=255&&!n?((l=r.allocUnsafe(2+f))[0]=217,l[1]=f,l.write(c,2)):f<=65535?((l=r.allocUnsafe(3+f))[0]=218,l.writeUInt16BE(f,1),l.write(c,3)):((l=r.allocUnsafe(5+f))[0]=219,l.writeUInt32BE(f,1),l.write(c,5));else if(c&&(c.readUInt32LE||c instanceof Uint8Array))c instanceof Uint8Array&&(c=r.from(c)),c.length<=255?((l=r.allocUnsafe(2))[0]=196,l[1]=c.length):c.length<=65535?((l=r.allocUnsafe(3))[0]=197,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=198,l.writeUInt32BE(c.length,1)),l=o([l,c]);else if(Array.isArray(c))c.length<16?(l=r.allocUnsafe(1))[0]=144|c.length:c.length<65536?((l=r.allocUnsafe(3))[0]=220,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=221,l.writeUInt32BE(c.length,1)),l=c.reduce((function(e,t){return e.append(s(t,!0)),e}),o().append(l));else{if(!a&&"function"==typeof c.getDate)return function(e){var t,n=1*e,i=Math.floor(n/1e3),a=1e6*(n-1e3*i);if(a||i>4294967295){(t=new r(10))[0]=215,t[1]=-1;var s=4*a,c=i/Math.pow(2,32),u=s+c&4294967295,l=4294967295&i;t.writeInt32BE(u,2),t.writeInt32BE(l,6)}else(t=new r(6))[0]=214,t[1]=-1,t.writeUInt32BE(Math.floor(n/1e3),2);return o().append(t)}(c);if("object"==typeof c)l=function(t){var n,i,a,s=[];for(n=0;n>8),s.push(255&a)):(s.push(201),s.push(a>>24),s.push(a>>16&255),s.push(a>>8&255),s.push(255&a));return o().append(r.from(s)).append(i)}(c)||function(e){var t,n,i=[],a=0;for(t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&"function"!=typeof e[t]&&(++a,i.push(s(t,!0)),i.push(s(e[t],!0)));a<16?(n=r.allocUnsafe(1))[0]=128|a:((n=r.allocUnsafe(3))[0]=222,n.writeUInt16BE(a,1));return i.unshift(n),i.reduce((function(e,t){return e.append(t)}),o())}(c);else if("number"==typeof c){if((h=c)!==Math.floor(h))return i(c,t);if(c>=0)if(c<128)(l=r.allocUnsafe(1))[0]=c;else if(c<256)(l=r.allocUnsafe(2))[0]=204,l[1]=c;else if(c<65536)(l=r.allocUnsafe(3))[0]=205,l.writeUInt16BE(c,1);else if(c<=4294967295)(l=r.allocUnsafe(5))[0]=206,l.writeUInt32BE(c,1);else{if(!(c<=9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=207,function(e,t){for(var n=7;n>=0;n--)e[n+1]=255&t,t/=256}(l,c)}else if(c>=-32)(l=r.allocUnsafe(1))[0]=256+c;else if(c>=-128)(l=r.allocUnsafe(2))[0]=208,l.writeInt8(c,1);else if(c>=-32768)(l=r.allocUnsafe(3))[0]=209,l.writeInt16BE(c,1);else if(c>-214748365)(l=r.allocUnsafe(5))[0]=210,l.writeInt32BE(c,1);else{if(!(c>=-9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=211,function(e,t,n){var r=n<0;r&&(n=Math.abs(n));var o=n%4294967296,i=n/4294967296;if(e.writeUInt32BE(Math.floor(i),t+0),e.writeUInt32BE(o,t+4),r)for(var a=1,s=t+7;s>=t;s--){var c=(255^e[s])+a;e[s]=255&c,a=c>>8}}(l,1,c)}}}if(!l)throw new Error("not implemented yet");return u?l:l.slice()}return s}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.nextBatchId?this.fatalError?(this.logger.log(s.LogLevel.Debug,"Received a new batch "+e+" but errored out on a previous batch "+(this.nextBatchId-1)),[4,n.send("OnRenderCompleted",this.nextBatchId-1,this.fatalError.toString())]):[3,4]:[3,5];case 3:return o.sent(),[2];case 4:return this.logger.log(s.LogLevel.Debug,"Waiting for batch "+this.nextBatchId+". Batch "+e+" not processed."),[2];case 5:return o.trys.push([5,7,,8]),this.nextBatchId++,this.logger.log(s.LogLevel.Debug,"Applying batch "+e+"."),i.renderBatch(this.browserRendererId,new a.OutOfProcessRenderBatch(t)),[4,this.completeBatch(n,e)];case 6:return o.sent(),[3,8];case 7:throw r=o.sent(),this.fatalError=r.toString(),this.logger.log(s.LogLevel.Error,"There was an error applying batch "+e+"."),n.send("OnRenderCompleted",e,r.toString()),r;case 8:return[2]}}))}))},e.prototype.getLastBatchid=function(){return this.nextBatchId-1},e.prototype.completeBatch=function(e,t){return r(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.send("OnRenderCompleted",t,null)];case 1:return n.sent(),[3,3];case 2:return n.sent(),this.logger.log(s.LogLevel.Warning,"Failed to deliver completion notification for render '"+t+"'."),[3,3];case 3:return[2]}}))}))},e}();t.RenderQueue=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(34),o=n(33),i=function(){function e(e){this.batchData=e;var t=new u(e);this.arrayRangeReader=new l(e),this.arrayBuilderSegmentReader=new f(e),this.diffReader=new a(e),this.editReader=new s(e,t),this.frameReader=new c(e,t)}return e.prototype.updatedComponents=function(){return o.readInt32LE(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return o.readInt32LE(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.referenceFramesEntry=function(e,t){return e+20*t},e.prototype.disposedComponentIdsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return o.readUint64LE(this.batchData,n)},e}();t.OutOfProcessRenderBatch=i;var a=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),s=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return o.readUint64LE(this.batchDataUint8,e+12)},e}(),u=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=o.readInt32LE(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t=o.readInt32LE(this.batchDataUint8,this.stringTableStartIndex+4*e),n=o.readLEB128(this.batchDataUint8,t),i=t+o.numLEB128Bytes(n),a=new Uint8Array(this.batchDataUint8.buffer,this.batchDataUint8.byteOffset+i,n);return r.decodeUtf8(a)},e}(),l=function(){function e(e){this.batchDataUint8=e}return e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}(),f=function(){function e(e){this.batchDataUint8=e}return e.prototype.offset=function(e){return 0},e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}();t.NullLogger=o;var i=function(){function e(e){this.minimumLogLevel=e}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.LogLevel.Critical:case r.LogLevel.Error:console.error("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Warning:console.warn("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Information:console.info("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;default:console.log("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t)}},e}();t.ConsoleLogger=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]reloading the page if you're unable to reconnect.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e.prototype.rejected=function(){this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.innerHTML="Could not reconnect to the server. Reload the page to restore functionality.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e}();t.DefaultReconnectDisplay=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.dialog=e}return e.prototype.show=function(){this.removeClasses(),this.dialog.classList.add(e.ShowClassName)},e.prototype.hide=function(){this.removeClasses(),this.dialog.classList.add(e.HideClassName)},e.prototype.failed=function(){this.removeClasses(),this.dialog.classList.add(e.FailedClassName)},e.prototype.rejected=function(){this.removeClasses(),this.dialog.classList.add(e.RejectedClassName)},e.prototype.removeClasses=function(){this.dialog.classList.remove(e.ShowClassName,e.HideClassName,e.FailedClassName,e.RejectedClassName)},e.ShowClassName="components-reconnect-show",e.HideClassName="components-reconnect-hide",e.FailedClassName="components-reconnect-failed",e.RejectedClassName="components-reconnect-rejected",e}();t.UserSpecifiedDisplay=r},function(e,t,n){"use strict";n.r(t),n.d(t,"VERSION",(function(){return l})),n.d(t,"MessagePackHubProtocol",(function(){return u}));var r=n(11),o=n(12),i=n(2),a=function(){function e(){}return e.write=function(e){var t=e.byteLength||e.length,n=[];do{var r=127&t;(t>>=7)>0&&(r|=128),n.push(r)}while(t>0);t=e.byteLength||e.length;var o=new Uint8Array(n.length+t);return o.set(n,0),o.set(e,n.length),o.buffer},e.parse=function(e){for(var t=[],n=new Uint8Array(e),r=[0,7,14,21,28],o=0;o7)throw new Error("Messages bigger than 2GB are not supported.");if(!(n.byteLength>=o+i+a))throw new Error("Incomplete message.");t.push(n.slice?n.slice(o+i,o+i+a):n.subarray(o+i,o+i+a)),o=o+i+a}return t},e}();var s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=3?e[2]:void 0,error:e[1],type:i.MessageType.Close}},e.prototype.createPingMessage=function(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:i.MessageType.Ping}},e.prototype.createInvocationMessage=function(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");var n=t[2];return n?{arguments:t[4],headers:e,invocationId:n,streamIds:[],target:t[3],type:i.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:i.MessageType.Invocation}},e.prototype.createStreamItemMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:i.MessageType.StreamItem}},e.prototype.createCompletionMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");var n,r,o=t[3];if(o!==this.voidResult&&t.length<5)throw new Error("Invalid payload for Completion message.");switch(o){case this.errorResult:n=t[4];break;case this.nonVoidResult:r=t[4]}return{error:n,headers:e,invocationId:t[2],result:r,type:i.MessageType.Completion}},e.prototype.writeInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamItem=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return a.write(t.slice())},e.prototype.writeCompletion=function(e){var t,n=o(this.messagePackOptions),r=e.error?this.errorResult:e.result?this.nonVoidResult:this.voidResult;switch(r){case this.errorResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.error]);break;case this.voidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r]);break;case this.nonVoidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.result])}return a.write(t.slice())},e.prototype.writeCancelInvocation=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return a.write(t.slice())},e.prototype.readHeaders=function(e){var t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t},e}(),l="5.0.0-dev"}]); \ No newline at end of file +*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,c=a(e),u=1;u0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(69),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(9))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,c=1,u={},l=!1,f=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){d(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(e){var t=f.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n0?this._transform(null,t,n):n()},e.exports.decoder=c,e.exports.encoder=s},function(e,t,n){(t=e.exports=n(38)).Stream=t,t.Readable=t,t.Writable=n(43),t.Duplex=n(10),t.Transform=n(44),t.PassThrough=n(73)},function(e,t,n){"use strict";e.exports=i;var r=n(44),o=n(20);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(16),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){var r=n(21);function o(e){Error.call(this),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||"unable to decode"}n(37).inherits(o,Error),e.exports=function(e){return function(e){e instanceof r||(e=r().append(e));var t=i(e);if(t)return e.consume(t.bytesConsumed),t.value;throw new o};function t(e,t,n){return t>=n+e}function n(e,t){return{value:e,bytesConsumed:t}}function i(e,r){r=void 0===r?0:r;var o=e.length-r;if(o<=0)return null;var i,l,f,h=e.readUInt8(r),p=0;if(!function(e,t){var n=function(e){switch(e){case 196:return 2;case 197:return 3;case 198:return 5;case 199:return 3;case 200:return 4;case 201:return 6;case 202:return 5;case 203:return 9;case 204:return 2;case 205:return 3;case 206:return 5;case 207:return 9;case 208:return 2;case 209:return 3;case 210:return 5;case 211:return 9;case 212:return 3;case 213:return 4;case 214:return 6;case 215:return 10;case 216:return 18;case 217:return 2;case 218:return 3;case 219:return 5;case 222:return 3;default:return-1}}(e);return!(-1!==n&&t=0;f--)p+=e.readUInt8(r+f+1)*Math.pow(2,8*(7-f));return n(p,9);case 208:return n(p=e.readInt8(r+1),2);case 209:return n(p=e.readInt16BE(r+1),3);case 210:return n(p=e.readInt32BE(r+1),5);case 211:return n(p=function(e,t){var n=128==(128&e[t]);if(n)for(var r=1,o=t+7;o>=t;o--){var i=(255^e[o])+r;e[o]=255&i,r=i>>8}var a=e.readUInt32BE(t+0),s=e.readUInt32BE(t+4);return(4294967296*a+s)*(n?-1:1)}(e.slice(r+1,r+9),0),9);case 202:return n(p=e.readFloatBE(r+1),5);case 203:return n(p=e.readDoubleBE(r+1),9);case 217:return t(i=e.readUInt8(r+1),o,2)?n(p=e.toString("utf8",r+2,r+2+i),2+i):null;case 218:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.toString("utf8",r+3,r+3+i),3+i):null;case 219:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.toString("utf8",r+5,r+5+i),5+i):null;case 196:return t(i=e.readUInt8(r+1),o,2)?n(p=e.slice(r+2,r+2+i),2+i):null;case 197:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.slice(r+3,r+3+i),3+i):null;case 198:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.slice(r+5,r+5+i),5+i):null;case 220:return o<3?null:(i=e.readUInt16BE(r+1),a(e,r,i,3));case 221:return o<5?null:(i=e.readUInt32BE(r+1),a(e,r,i,5));case 222:return i=e.readUInt16BE(r+1),s(e,r,i,3);case 223:throw new Error("map too big to decode in JS");case 212:return c(e,r,1);case 213:return c(e,r,2);case 214:return c(e,r,4);case 215:return c(e,r,8);case 216:return c(e,r,16);case 199:return i=e.readUInt8(r+1),l=e.readUInt8(r+2),t(i,o,3)?u(e,r,l,i,3):null;case 200:return i=e.readUInt16BE(r+1),l=e.readUInt8(r+3),t(i,o,4)?u(e,r,l,i,4):null;case 201:return i=e.readUInt32BE(r+1),l=e.readUInt8(r+5),t(i,o,6)?u(e,r,l,i,6):null}if(144==(240&h))return a(e,r,i=15&h,1);if(128==(240&h))return s(e,r,i=15&h,1);if(160==(224&h))return t(i=31&h,o,1)?n(p=e.toString("utf8",r+1,r+i+1),i+1):null;if(h>=224)return n(p=h-256,1);if(h<128)return n(h,1);throw new Error("not implemented yet")}function a(e,t,r,o){var a,s=[],c=0;for(t+=o,a=0;a.1)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,a){function s(c,u){var l,f,h;if(void 0===c)throw new Error("undefined is not encodable in msgpack!");if(null===c)(l=r.allocUnsafe(1))[0]=192;else if(!0===c)(l=r.allocUnsafe(1))[0]=195;else if(!1===c)(l=r.allocUnsafe(1))[0]=194;else if("string"==typeof c)(f=r.byteLength(c))<32?((l=r.allocUnsafe(1+f))[0]=160|f,f>0&&l.write(c,1)):f<=255&&!n?((l=r.allocUnsafe(2+f))[0]=217,l[1]=f,l.write(c,2)):f<=65535?((l=r.allocUnsafe(3+f))[0]=218,l.writeUInt16BE(f,1),l.write(c,3)):((l=r.allocUnsafe(5+f))[0]=219,l.writeUInt32BE(f,1),l.write(c,5));else if(c&&(c.readUInt32LE||c instanceof Uint8Array))c instanceof Uint8Array&&(c=r.from(c)),c.length<=255?((l=r.allocUnsafe(2))[0]=196,l[1]=c.length):c.length<=65535?((l=r.allocUnsafe(3))[0]=197,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=198,l.writeUInt32BE(c.length,1)),l=o([l,c]);else if(Array.isArray(c))c.length<16?(l=r.allocUnsafe(1))[0]=144|c.length:c.length<65536?((l=r.allocUnsafe(3))[0]=220,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=221,l.writeUInt32BE(c.length,1)),l=c.reduce((function(e,t){return e.append(s(t,!0)),e}),o().append(l));else{if(!a&&"function"==typeof c.getDate)return function(e){var t,n=1*e,i=Math.floor(n/1e3),a=1e6*(n-1e3*i);if(a||i>4294967295){(t=new r(10))[0]=215,t[1]=-1;var s=4*a,c=i/Math.pow(2,32),u=s+c&4294967295,l=4294967295&i;t.writeInt32BE(u,2),t.writeInt32BE(l,6)}else(t=new r(6))[0]=214,t[1]=-1,t.writeUInt32BE(Math.floor(n/1e3),2);return o().append(t)}(c);if("object"==typeof c)l=function(t){var n,i,a,s=[];for(n=0;n>8),s.push(255&a)):(s.push(201),s.push(a>>24),s.push(a>>16&255),s.push(a>>8&255),s.push(255&a));return o().append(r.from(s)).append(i)}(c)||function(e){var t,n,i=[],a=0;for(t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&"function"!=typeof e[t]&&(++a,i.push(s(t,!0)),i.push(s(e[t],!0)));a<16?(n=r.allocUnsafe(1))[0]=128|a:((n=r.allocUnsafe(3))[0]=222,n.writeUInt16BE(a,1));return i.unshift(n),i.reduce((function(e,t){return e.append(t)}),o())}(c);else if("number"==typeof c){if((h=c)!==Math.floor(h))return i(c,t);if(c>=0)if(c<128)(l=r.allocUnsafe(1))[0]=c;else if(c<256)(l=r.allocUnsafe(2))[0]=204,l[1]=c;else if(c<65536)(l=r.allocUnsafe(3))[0]=205,l.writeUInt16BE(c,1);else if(c<=4294967295)(l=r.allocUnsafe(5))[0]=206,l.writeUInt32BE(c,1);else{if(!(c<=9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=207,function(e,t){for(var n=7;n>=0;n--)e[n+1]=255&t,t/=256}(l,c)}else if(c>=-32)(l=r.allocUnsafe(1))[0]=256+c;else if(c>=-128)(l=r.allocUnsafe(2))[0]=208,l.writeInt8(c,1);else if(c>=-32768)(l=r.allocUnsafe(3))[0]=209,l.writeInt16BE(c,1);else if(c>-214748365)(l=r.allocUnsafe(5))[0]=210,l.writeInt32BE(c,1);else{if(!(c>=-9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=211,function(e,t,n){var r=n<0;r&&(n=Math.abs(n));var o=n%4294967296,i=n/4294967296;if(e.writeUInt32BE(Math.floor(i),t+0),e.writeUInt32BE(o,t+4),r)for(var a=1,s=t+7;s>=t;s--){var c=(255^e[s])+a;e[s]=255&c,a=c>>8}}(l,1,c)}}}if(!l)throw new Error("not implemented yet");return u?l:l.slice()}return s}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.nextBatchId?this.fatalError?(this.logger.log(s.LogLevel.Debug,"Received a new batch "+e+" but errored out on a previous batch "+(this.nextBatchId-1)),[4,n.send("OnRenderCompleted",this.nextBatchId-1,this.fatalError.toString())]):[3,4]:[3,5];case 3:return o.sent(),[2];case 4:return this.logger.log(s.LogLevel.Debug,"Waiting for batch "+this.nextBatchId+". Batch "+e+" not processed."),[2];case 5:return o.trys.push([5,7,,8]),this.nextBatchId++,this.logger.log(s.LogLevel.Debug,"Applying batch "+e+"."),i.renderBatch(this.browserRendererId,new a.OutOfProcessRenderBatch(t)),[4,this.completeBatch(n,e)];case 6:return o.sent(),[3,8];case 7:throw r=o.sent(),this.fatalError=r.toString(),this.logger.log(s.LogLevel.Error,"There was an error applying batch "+e+"."),n.send("OnRenderCompleted",e,r.toString()),r;case 8:return[2]}}))}))},e.prototype.getLastBatchid=function(){return this.nextBatchId-1},e.prototype.completeBatch=function(e,t){return r(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.send("OnRenderCompleted",t,null)];case 1:return n.sent(),[3,3];case 2:return n.sent(),this.logger.log(s.LogLevel.Warning,"Failed to deliver completion notification for render '"+t+"'."),[3,3];case 3:return[2]}}))}))},e}();t.RenderQueue=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(35),o=n(34),i=function(){function e(e){this.batchData=e;var t=new u(e);this.arrayRangeReader=new l(e),this.arrayBuilderSegmentReader=new f(e),this.diffReader=new a(e),this.editReader=new s(e,t),this.frameReader=new c(e,t)}return e.prototype.updatedComponents=function(){return o.readInt32LE(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return o.readInt32LE(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.referenceFramesEntry=function(e,t){return e+20*t},e.prototype.disposedComponentIdsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return o.readUint64LE(this.batchData,n)},e}();t.OutOfProcessRenderBatch=i;var a=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),s=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return o.readUint64LE(this.batchDataUint8,e+12)},e}(),u=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=o.readInt32LE(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t=o.readInt32LE(this.batchDataUint8,this.stringTableStartIndex+4*e),n=o.readLEB128(this.batchDataUint8,t),i=t+o.numLEB128Bytes(n),a=new Uint8Array(this.batchDataUint8.buffer,this.batchDataUint8.byteOffset+i,n);return r.decodeUtf8(a)},e}(),l=function(){function e(e){this.batchDataUint8=e}return e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}(),f=function(){function e(e){this.batchDataUint8=e}return e.prototype.offset=function(e){return 0},e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}();t.NullLogger=o;var i=function(){function e(e){this.minimumLogLevel=e}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.LogLevel.Critical:case r.LogLevel.Error:console.error("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Warning:console.warn("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Information:console.info("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;default:console.log("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t)}},e}();t.ConsoleLogger=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]reloading the page if you're unable to reconnect.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e.prototype.rejected=function(){this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.innerHTML="Could not reconnect to the server. Reload the page to restore functionality.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e}();t.DefaultReconnectDisplay=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.dialog=e}return e.prototype.show=function(){this.removeClasses(),this.dialog.classList.add(e.ShowClassName)},e.prototype.hide=function(){this.removeClasses(),this.dialog.classList.add(e.HideClassName)},e.prototype.failed=function(){this.removeClasses(),this.dialog.classList.add(e.FailedClassName)},e.prototype.rejected=function(){this.removeClasses(),this.dialog.classList.add(e.RejectedClassName)},e.prototype.removeClasses=function(){this.dialog.classList.remove(e.ShowClassName,e.HideClassName,e.FailedClassName,e.RejectedClassName)},e.ShowClassName="components-reconnect-show",e.HideClassName="components-reconnect-hide",e.FailedClassName="components-reconnect-failed",e.RejectedClassName="components-reconnect-rejected",e}();t.UserSpecifiedDisplay=r},function(e,t,n){"use strict";n.r(t),n.d(t,"VERSION",(function(){return l})),n.d(t,"MessagePackHubProtocol",(function(){return u}));var r=n(11),o=n(12),i=n(2),a=function(){function e(){}return e.write=function(e){var t=e.byteLength||e.length,n=[];do{var r=127&t;(t>>=7)>0&&(r|=128),n.push(r)}while(t>0);t=e.byteLength||e.length;var o=new Uint8Array(n.length+t);return o.set(n,0),o.set(e,n.length),o.buffer},e.parse=function(e){for(var t=[],n=new Uint8Array(e),r=[0,7,14,21,28],o=0;o7)throw new Error("Messages bigger than 2GB are not supported.");if(!(n.byteLength>=o+i+a))throw new Error("Incomplete message.");t.push(n.slice?n.slice(o+i,o+i+a):n.subarray(o+i,o+i+a)),o=o+i+a}return t},e}();var s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=3?e[2]:void 0,error:e[1],type:i.MessageType.Close}},e.prototype.createPingMessage=function(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:i.MessageType.Ping}},e.prototype.createInvocationMessage=function(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");var n=t[2];return n?{arguments:t[4],headers:e,invocationId:n,streamIds:[],target:t[3],type:i.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:i.MessageType.Invocation}},e.prototype.createStreamItemMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:i.MessageType.StreamItem}},e.prototype.createCompletionMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");var n,r,o=t[3];if(o!==this.voidResult&&t.length<5)throw new Error("Invalid payload for Completion message.");switch(o){case this.errorResult:n=t[4];break;case this.nonVoidResult:r=t[4]}return{error:n,headers:e,invocationId:t[2],result:r,type:i.MessageType.Completion}},e.prototype.writeInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamItem=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return a.write(t.slice())},e.prototype.writeCompletion=function(e){var t,n=o(this.messagePackOptions),r=e.error?this.errorResult:e.result?this.nonVoidResult:this.voidResult;switch(r){case this.errorResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.error]);break;case this.voidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r]);break;case this.nonVoidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.result])}return a.write(t.slice())},e.prototype.writeCancelInvocation=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return a.write(t.slice())},e.prototype.readHeaders=function(e){var t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t},e}(),l="5.0.0-dev"}]); \ No newline at end of file diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index 1d85c8fd46..24e1068930 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=45)}([,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=c();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,m),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var u=JSON.stringify(i,m);c().beginInvokeDotNetFromJS(a,e,t,r,u)}catch(e){l(a,!1,e)}return s}function c(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function d(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),v=m+f.count(a),y=m;y0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(46),c=n(4),l=n(49),f=n(35),d=n(19),p=n(50),h=n(51),m=n(52),v=n(5),y=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(y)throw new Error("Blazor has already started.");return y=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){v.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}v.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,v=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),v.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function v(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(33),a=n(34);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],v=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,v,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(32),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),v=m+f.count(a),y=m;y0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(47),c=n(4),l=n(50),f=n(36),d=n(19),p=n(51),h=n(52),m=n(53),v=n(5),y=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(y)throw new Error("Blazor has already started.");return y=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){v.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}v.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,v=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),v.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function v(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(34),a=n(35);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],v=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,v,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] Date: Thu, 16 Jul 2020 16:46:15 -0700 Subject: [PATCH 23/75] StopAsync resets state on inactive connection (#20083) (#23962) --- .../csharp/Client.Core/src/HubConnection.cs | 5 +++++ .../HubConnectionTests.ConnectionLifecycle.cs | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs b/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs index e8d35d753f..392d0ac7c8 100644 --- a/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs +++ b/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs @@ -501,6 +501,11 @@ namespace Microsoft.AspNetCore.SignalR.Client { connectionState.Stopping = true; } + else + { + // Reset StopCts if there isn't an active connection so that the next StartAsync wont immediately fail due to the token being canceled + _state.StopCts = new CancellationTokenSource(); + } if (disposing) { diff --git a/src/SignalR/clients/csharp/Client/test/UnitTests/HubConnectionTests.ConnectionLifecycle.cs b/src/SignalR/clients/csharp/Client/test/UnitTests/HubConnectionTests.ConnectionLifecycle.cs index 3c669ef94d..f1d191ee8c 100644 --- a/src/SignalR/clients/csharp/Client/test/UnitTests/HubConnectionTests.ConnectionLifecycle.cs +++ b/src/SignalR/clients/csharp/Client/test/UnitTests/HubConnectionTests.ConnectionLifecycle.cs @@ -334,6 +334,26 @@ namespace Microsoft.AspNetCore.SignalR.Client.Tests }); } + [Fact] + public async Task StopAsyncOnInactiveConnectionDoesNotAffectNextStartAsync() + { + // Regression test: + // If there wasn't an active underlying connection, StopAsync would leave a CTS canceled which would cause the next StartAsync to fail + var testConnection = new TestConnection(); + await AsyncUsing(CreateHubConnection(testConnection), async connection => + { + Assert.Equal(HubConnectionState.Disconnected, connection.State); + + await connection.StopAsync().OrTimeout(); + Assert.False(testConnection.Disposed.IsCompleted); + Assert.Equal(HubConnectionState.Disconnected, connection.State); + + await connection.StartAsync().OrTimeout(); + Assert.True(testConnection.Started.IsCompleted); + Assert.Equal(HubConnectionState.Connected, connection.State); + }); + } + [Fact] public async Task CompletingTheTransportSideMarksConnectionAsClosed() { From bace984f606bc642ecc2309610a2878adaa1b0d5 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 16 Jul 2020 17:03:49 -0700 Subject: [PATCH 24/75] Update BuildFromSource.md (#24020) --- docs/BuildFromSource.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/BuildFromSource.md b/docs/BuildFromSource.md index 95b08ab146..f16e82b559 100644 --- a/docs/BuildFromSource.md +++ b/docs/BuildFromSource.md @@ -38,7 +38,8 @@ Building ASP.NET Core on Windows requires: However, any Visual Studio 2019 instance that meets the requirements should be fine. See [global.json](/global.json) and [eng/scripts/vs.json](/eng/scripts/vs.json) for those requirements. By default, the script will install Visual Studio Enterprise Edition, however you can use a different edition by passing the `-Edition` flag. * Git. -* NodeJS. LTS version of 10.14.2 or newer +* NodeJS. LTS version of 10.14.2 or newer . +* Install yarn globally (`npm install -g yarn`) * Java Development Kit 11 or newer. Either: * OpenJDK * Oracle's JDK From 1455aaeff118aeaf2b0ab5f1627c2c8ca5df7f11 Mon Sep 17 00:00:00 2001 From: Vladimir Samoilenko Date: Fri, 17 Jul 2020 03:09:06 +0200 Subject: [PATCH 25/75] Blazor: add support for ontoggle event (#24036) Summary of the changes - Implemented `@ontoggle` event - Added test component to BasicTestApp Fix Issue: #20859 --- src/Components/Shared/src/WebEventData.cs | 1 + .../Web.JS/dist/Release/blazor.server.js | 2 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Rendering/EventDelegator.ts | 1 + .../Web.JS/src/Rendering/EventForDotNet.ts | 5 +++- ...ft.AspNetCore.Components.Web.netcoreapp.cs | 1 + src/Components/Web/src/Web/EventHandlers.cs | 2 ++ .../test/E2ETest/Tests/EventTest.cs | 18 +++++++++++++ .../test/testassets/BasicTestApp/Index.razor | 1 + .../BasicTestApp/ToggleEventComponent.razor | 25 +++++++++++++++++++ 10 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 src/Components/test/testassets/BasicTestApp/ToggleEventComponent.razor diff --git a/src/Components/Shared/src/WebEventData.cs b/src/Components/Shared/src/WebEventData.cs index c0d5824e53..f809807fbe 100644 --- a/src/Components/Shared/src/WebEventData.cs +++ b/src/Components/Shared/src/WebEventData.cs @@ -71,6 +71,7 @@ namespace Microsoft.AspNetCore.Components.Web "touch" => Deserialize(eventArgsJson), "unknown" => EventArgs.Empty, "wheel" => Deserialize(eventArgsJson), + "toggle" => Deserialize(eventArgsJson), _ => throw new InvalidOperationException($"Unsupported event type '{eventArgsType}'. EventId: '{eventHandlerId}'."), }; } diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index b71a196406..a576b4914e 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh * @license MIT */ -var r=n(55),o=n(56),i=n(57);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(58),i=n(21),a=n(71),s=n(74),c=n(75);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(60);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(61),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(39).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(67).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(70)},f=n(40),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(41);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(68).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(59); +var r=n(55),o=n(56),i=n(57);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(58),i=n(21),a=n(71),s=n(74),c=n(75);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(60);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(61),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(39).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(67).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(70)},f=n(40),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(41);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(68).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(59); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index 24e1068930..6786a93fb0 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=46)}([,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=c();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,m),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var u=JSON.stringify(i,m);c().beginInvokeDotNetFromJS(a,e,t,r,u)}catch(e){l(a,!1,e)}return s}function c(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function d(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(32),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),v=m+f.count(a),y=m;y0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(47),c=n(4),l=n(50),f=n(36),d=n(19),p=n(51),h=n(52),m=n(53),v=n(5),y=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(y)throw new Error("Blazor has already started.");return y=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){v.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}v.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,v=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),v.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function v(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(34),a=n(35);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],v=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,v,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(32),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),y=m+f.count(a),v=m;v0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(47),c=n(4),l=n(50),f=n(36),d=n(19),p=n(51),h=n(52),m=n(53),y=n(5),v=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(v)throw new Error("Blazor has already started.");return v=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){y.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}y.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){v("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,y=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),y.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function y(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(34),a=n(35);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],y=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,y,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] { case 'mousewheel': return new EventForDotNet('wheel', parseWheelEvent(event as WheelEvent)); + case 'toggle': + return new EventForDotNet('toggle', { type: event.type }); + default: return new EventForDotNet('unknown', { type: event.type }); } @@ -248,7 +251,7 @@ function normalizeTimeBasedValue(element: HTMLInputElement): string { // The following interfaces must be kept in sync with the UIEventArgs C# classes -export type EventArgsType = 'change' | 'clipboard' | 'drag' | 'error' | 'focus' | 'keyboard' | 'mouse' | 'pointer' | 'progress' | 'touch' | 'unknown' | 'wheel'; +export type EventArgsType = 'change' | 'clipboard' | 'drag' | 'error' | 'focus' | 'keyboard' | 'mouse' | 'pointer' | 'progress' | 'touch' | 'unknown' | 'wheel' | 'toggle'; export interface UIEventArgs { type: string; diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs index 14ff4f7367..aa04448bd7 100644 --- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs +++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs @@ -345,6 +345,7 @@ namespace Microsoft.AspNetCore.Components.Web [Microsoft.AspNetCore.Components.EventHandlerAttribute("onsuspend", typeof(System.EventArgs), true, true)] [Microsoft.AspNetCore.Components.EventHandlerAttribute("ontimeout", typeof(Microsoft.AspNetCore.Components.Web.ProgressEventArgs), true, true)] [Microsoft.AspNetCore.Components.EventHandlerAttribute("ontimeupdate", typeof(System.EventArgs), true, true)] + [Microsoft.AspNetCore.Components.EventHandlerAttribute("ontoggle", typeof(System.EventArgs), true, true)] [Microsoft.AspNetCore.Components.EventHandlerAttribute("ontouchcancel", typeof(Microsoft.AspNetCore.Components.Web.TouchEventArgs), true, true)] [Microsoft.AspNetCore.Components.EventHandlerAttribute("ontouchend", typeof(Microsoft.AspNetCore.Components.Web.TouchEventArgs), true, true)] [Microsoft.AspNetCore.Components.EventHandlerAttribute("ontouchenter", typeof(Microsoft.AspNetCore.Components.Web.TouchEventArgs), true, true)] diff --git a/src/Components/Web/src/Web/EventHandlers.cs b/src/Components/Web/src/Web/EventHandlers.cs index 5e4bb8e83f..e83892f2da 100644 --- a/src/Components/Web/src/Web/EventHandlers.cs +++ b/src/Components/Web/src/Web/EventHandlers.cs @@ -122,6 +122,8 @@ namespace Microsoft.AspNetCore.Components.Web [EventHandler("onpointerlockerror", typeof(EventArgs), true, true)] [EventHandler("onreadystatechange", typeof(EventArgs), true, true)] [EventHandler("onscroll", typeof(EventArgs), true, true)] + + [EventHandler("ontoggle", typeof(EventArgs), true, true)] public static class EventHandlers { } diff --git a/src/Components/test/E2ETest/Tests/EventTest.cs b/src/Components/test/E2ETest/Tests/EventTest.cs index 218e545229..19a0ad9d0a 100644 --- a/src/Components/test/E2ETest/Tests/EventTest.cs +++ b/src/Components/test/E2ETest/Tests/EventTest.cs @@ -115,6 +115,24 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Browser.Equal("onmousedown,onmouseup,", () => output.Text); } + + [Fact] + public void Toggle_CanTrigger() + { + Browser.MountTestComponent(); + + var detailsToggle = Browser.FindElement(By.Id("details-toggle")); + + var output = Browser.FindElement(By.Id("output")); + Assert.Equal(string.Empty, output.Text); + + // Click + var actions = new Actions(Browser).Click(detailsToggle); + + actions.Perform(); + Browser.Equal("ontoggle,", () => output.Text); + } + [Fact] public void PointerDown_CanTrigger() { diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index aa87700d5b..6241d46347 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -82,6 +82,7 @@ + @System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription diff --git a/src/Components/test/testassets/BasicTestApp/ToggleEventComponent.razor b/src/Components/test/testassets/BasicTestApp/ToggleEventComponent.razor new file mode 100644 index 0000000000..1639dbb383 --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/ToggleEventComponent.razor @@ -0,0 +1,25 @@ +
+

+ Output: @message +

+ + +

Open the details.

+ +
+ Summary +

+

Detailed content

+
+ +
+ +@code { + string message { get; set; } + + void OnToggle(EventArgs e) + { + message += "ontoggle,"; + StateHasChanged(); + } +} From 71327921ed3afde65358a10517d6a108aaa068ee Mon Sep 17 00:00:00 2001 From: Chris Sainty Date: Fri, 17 Jul 2020 03:06:50 +0100 Subject: [PATCH 26/75] Modified EditForm to return _fixedEditContext via the EditContext parameter (#24007) * Modified EditForm to return _fixedEditContext via the EditContext parameter. Also added some tests to cover the new functionality * Swapped to boolean to track provided EditContext * Patched ref assembly * Simplified setting _hasSetEditContextExplicitly * Renamed _fixedEditContext to _editContext * Updated null check in OnParametersSet * Simplified check for EditContext updates based on Model changes --- ...ft.AspNetCore.Components.Web.netcoreapp.cs | 2 +- src/Components/Web/src/Forms/EditForm.cs | 49 ++++--- src/Components/Web/test/Forms/EditFormTest.cs | 120 ++++++++++++++++++ 3 files changed, 153 insertions(+), 18 deletions(-) create mode 100644 src/Components/Web/test/Forms/EditFormTest.cs diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs index aa04448bd7..d60e512b5d 100644 --- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs +++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs @@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Components.Forms [Microsoft.AspNetCore.Components.ParameterAttribute] public Microsoft.AspNetCore.Components.RenderFragment? ChildContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } [Microsoft.AspNetCore.Components.ParameterAttribute] - public Microsoft.AspNetCore.Components.Forms.EditContext? EditContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } + public Microsoft.AspNetCore.Components.Forms.EditContext? EditContext { get { throw null; } set { } } [Microsoft.AspNetCore.Components.ParameterAttribute] public object? Model { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } [Microsoft.AspNetCore.Components.ParameterAttribute] diff --git a/src/Components/Web/src/Forms/EditForm.cs b/src/Components/Web/src/Forms/EditForm.cs index e4467b532a..f5a13fc9fd 100644 --- a/src/Components/Web/src/Forms/EditForm.cs +++ b/src/Components/Web/src/Forms/EditForm.cs @@ -16,7 +16,8 @@ namespace Microsoft.AspNetCore.Components.Forms { private readonly Func _handleSubmitDelegate; // Cache to avoid per-render allocations - private EditContext? _fixedEditContext; + private EditContext? _editContext; + private bool _hasSetEditContextExplicitly; /// /// Constructs an instance of . @@ -36,7 +37,16 @@ namespace Microsoft.AspNetCore.Components.Forms /// also supply , since the model value will be taken /// from the property. /// - [Parameter] public EditContext? EditContext { get; set; } + [Parameter] + public EditContext? EditContext + { + get => _editContext; + set + { + _editContext = value; + _hasSetEditContextExplicitly = value != null; + } + } /// /// Specifies the top-level model object for the form. An edit context will @@ -73,11 +83,16 @@ namespace Microsoft.AspNetCore.Components.Forms /// protected override void OnParametersSet() { - if ((EditContext == null) == (Model == null)) + if (_hasSetEditContextExplicitly && Model != null) { throw new InvalidOperationException($"{nameof(EditForm)} requires a {nameof(Model)} " + $"parameter, or an {nameof(EditContext)} parameter, but not both."); } + else if (!_hasSetEditContextExplicitly && Model == null) + { + throw new InvalidOperationException($"{nameof(EditForm)} requires either a {nameof(Model)} " + + $"parameter, or an {nameof(EditContext)} parameter, please provide one of these."); + } // If you're using OnSubmit, it becomes your responsibility to trigger validation manually // (e.g., so you can display a "pending" state in the UI). In that case you don't want the @@ -89,31 +104,31 @@ namespace Microsoft.AspNetCore.Components.Forms $"{nameof(EditForm)}, do not also supply {nameof(OnValidSubmit)} or {nameof(OnInvalidSubmit)}."); } - // Update _fixedEditContext if we don't have one yet, or if they are supplying a + // Update _editContext if we don't have one yet, or if they are supplying a // potentially new EditContext, or if they are supplying a different Model - if (_fixedEditContext == null || EditContext != null || Model != _fixedEditContext.Model) + if (Model != null && Model != _editContext?.Model) { - _fixedEditContext = EditContext ?? new EditContext(Model!); + _editContext = new EditContext(Model!); } } /// protected override void BuildRenderTree(RenderTreeBuilder builder) { - Debug.Assert(_fixedEditContext != null); + Debug.Assert(_editContext != null); - // If _fixedEditContext changes, tear down and recreate all descendants. + // If _editContext changes, tear down and recreate all descendants. // This is so we can safely use the IsFixed optimization on CascadingValue, - // optimizing for the common case where _fixedEditContext never changes. - builder.OpenRegion(_fixedEditContext.GetHashCode()); + // optimizing for the common case where _editContext never changes. + builder.OpenRegion(_editContext.GetHashCode()); builder.OpenElement(0, "form"); builder.AddMultipleAttributes(1, AdditionalAttributes); builder.AddAttribute(2, "onsubmit", _handleSubmitDelegate); builder.OpenComponent>(3); builder.AddAttribute(4, "IsFixed", true); - builder.AddAttribute(5, "Value", _fixedEditContext); - builder.AddAttribute(6, "ChildContent", ChildContent?.Invoke(_fixedEditContext)); + builder.AddAttribute(5, "Value", _editContext); + builder.AddAttribute(6, "ChildContent", ChildContent?.Invoke(_editContext)); builder.CloseComponent(); builder.CloseElement(); @@ -122,26 +137,26 @@ namespace Microsoft.AspNetCore.Components.Forms private async Task HandleSubmitAsync() { - Debug.Assert(_fixedEditContext != null); + Debug.Assert(_editContext != null); if (OnSubmit.HasDelegate) { // When using OnSubmit, the developer takes control of the validation lifecycle - await OnSubmit.InvokeAsync(_fixedEditContext); + await OnSubmit.InvokeAsync(_editContext); } else { // Otherwise, the system implicitly runs validation on form submission - var isValid = _fixedEditContext.Validate(); // This will likely become ValidateAsync later + var isValid = _editContext.Validate(); // This will likely become ValidateAsync later if (isValid && OnValidSubmit.HasDelegate) { - await OnValidSubmit.InvokeAsync(_fixedEditContext); + await OnValidSubmit.InvokeAsync(_editContext); } if (!isValid && OnInvalidSubmit.HasDelegate) { - await OnInvalidSubmit.InvokeAsync(_fixedEditContext); + await OnInvalidSubmit.InvokeAsync(_editContext); } } } diff --git a/src/Components/Web/test/Forms/EditFormTest.cs b/src/Components/Web/test/Forms/EditFormTest.cs new file mode 100644 index 0000000000..05a390ddca --- /dev/null +++ b/src/Components/Web/test/Forms/EditFormTest.cs @@ -0,0 +1,120 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.Rendering; +using Microsoft.AspNetCore.Components.RenderTree; +using Microsoft.AspNetCore.Components.Test.Helpers; +using Xunit; + +namespace Microsoft.AspNetCore.Components.Forms +{ + public class EditFormTest + { + + [Fact] + public async Task ThrowsIfBothEditContextAndModelAreSupplied() + { + // Arrange + var editForm = new EditForm + { + EditContext = new EditContext(new TestModel()), + Model = new TestModel() + }; + var testRenderer = new TestRenderer(); + var componentId = testRenderer.AssignRootComponentId(editForm); + + // Act/Assert + var ex = await Assert.ThrowsAsync( + () => testRenderer.RenderRootComponentAsync(componentId)); + Assert.StartsWith($"{nameof(EditForm)} requires a {nameof(EditForm.Model)} parameter, or an {nameof(EditContext)} parameter, but not both.", ex.Message); + } + + [Fact] + public async Task ThrowsIfBothEditContextAndModelAreNull() + { + // Arrange + var editForm = new EditForm(); + var testRenderer = new TestRenderer(); + var componentId = testRenderer.AssignRootComponentId(editForm); + + // Act/Assert + var ex = await Assert.ThrowsAsync( + () => testRenderer.RenderRootComponentAsync(componentId)); + Assert.StartsWith($"{nameof(EditForm)} requires either a {nameof(EditForm.Model)} parameter, or an {nameof(EditContext)} parameter, please provide one of these.", ex.Message); + } + + [Fact] + public async Task ReturnsEditContextWhenModelParameterUsed() + { + // Arrange + var model = new TestModel(); + var rootComponent = new TestEditFormHostComponent + { + Model = model + }; + var editFormComponent = await RenderAndGetTestEditFormComponentAsync(rootComponent); + + // Act + var returnedEditContext = editFormComponent.EditContext; + + // Assert + Assert.NotNull(returnedEditContext); + Assert.Same(model, returnedEditContext.Model); + } + + [Fact] + public async Task ReturnsEditContextWhenEditContextParameterUsed() + { + // Arrange + var editContext = new EditContext(new TestModel()); + var rootComponent = new TestEditFormHostComponent + { + EditContext = editContext + }; + var editFormComponent = await RenderAndGetTestEditFormComponentAsync(rootComponent); + + // Act + var returnedEditContext = editFormComponent.EditContext; + + // Assert + Assert.Same(editContext, returnedEditContext); + } + + private static EditForm FindEditFormComponent(CapturedBatch batch) + => batch.ReferenceFrames + .Where(f => f.FrameType == RenderTreeFrameType.Component) + .Select(f => f.Component) + .OfType() + .Single(); + + private static async Task RenderAndGetTestEditFormComponentAsync(TestEditFormHostComponent hostComponent) + { + var testRenderer = new TestRenderer(); + var componentId = testRenderer.AssignRootComponentId(hostComponent); + await testRenderer.RenderRootComponentAsync(componentId); + return FindEditFormComponent(testRenderer.Batches.Single()); + } + + class TestModel + { + public string StringProperty { get; set; } + } + + class TestEditFormHostComponent : AutoRenderComponent + { + public EditContext EditContext { get; set; } + public TestModel Model { get; set; } + + protected override void BuildRenderTree(RenderTreeBuilder builder) + { + builder.OpenComponent(0); + builder.AddAttribute(1, "Model", Model); + builder.AddAttribute(2, "EditContext", EditContext); + builder.CloseComponent(); + } + } + } +} From ec4b2221c24a8b4e4501b6a63eb858b32f170825 Mon Sep 17 00:00:00 2001 From: Stephen Lorello <42971704+slorello89@users.noreply.github.com> Date: Fri, 17 Jul 2020 06:54:48 -0400 Subject: [PATCH 27/75] [Blazor][Fixes #22679] Flow the Resource to the authorization service in AuthorizeRouteView AuthorizeRouteView combines AuthorizeView and RouteView on one abstraction for convenience, but it was missing a Resource parameter to capture and flow the resource to pass on to the AuthorizationService. This PR adds a new Resource parameter and makes sure that the value is passed to the authorization service so that it is available for the authorization handlers in a policy. --- ...ore.Components.Authorization.netcoreapp.cs | 2 + .../Authorization/src/AuthorizeRouteView.cs | 7 ++ .../test/AuthorizeRouteViewTest.cs | 72 +++++++++++++++++++ 3 files changed, 81 insertions(+) diff --git a/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.netcoreapp.cs b/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.netcoreapp.cs index 1ed5ecbf0e..6ce83a6bcf 100644 --- a/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.netcoreapp.cs +++ b/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.netcoreapp.cs @@ -23,6 +23,8 @@ namespace Microsoft.AspNetCore.Components.Authorization public Microsoft.AspNetCore.Components.RenderFragment Authorizing { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } [Microsoft.AspNetCore.Components.ParameterAttribute] public Microsoft.AspNetCore.Components.RenderFragment NotAuthorized { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } + [Microsoft.AspNetCore.Components.ParameterAttribute] + public object Resource { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } } protected override void Render(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) { } } public partial class AuthorizeView : Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore diff --git a/src/Components/Authorization/src/AuthorizeRouteView.cs b/src/Components/Authorization/src/AuthorizeRouteView.cs index 2d7ea76698..b236dfd158 100644 --- a/src/Components/Authorization/src/AuthorizeRouteView.cs +++ b/src/Components/Authorization/src/AuthorizeRouteView.cs @@ -54,6 +54,12 @@ namespace Microsoft.AspNetCore.Components.Authorization [Parameter] public RenderFragment Authorizing { get; set; } + /// + /// The resource to which access is being controlled. + /// + [Parameter] + public object Resource { get; set; } + [CascadingParameter] private Task ExistingCascadedAuthenticationState { get; set; } @@ -82,6 +88,7 @@ namespace Microsoft.AspNetCore.Components.Authorization builder.AddAttribute(2, nameof(AuthorizeRouteViewCore.Authorized), _renderAuthorizedDelegate); builder.AddAttribute(3, nameof(AuthorizeRouteViewCore.Authorizing), _renderAuthorizingDelegate); builder.AddAttribute(4, nameof(AuthorizeRouteViewCore.NotAuthorized), _renderNotAuthorizedDelegate); + builder.AddAttribute(5, nameof(AuthorizeRouteViewCore.Resource), Resource); builder.CloseComponent(); } diff --git a/src/Components/Authorization/test/AuthorizeRouteViewTest.cs b/src/Components/Authorization/test/AuthorizeRouteViewTest.cs index 5a3a5683c7..9951014a51 100644 --- a/src/Components/Authorization/test/AuthorizeRouteViewTest.cs +++ b/src/Components/Authorization/test/AuthorizeRouteViewTest.cs @@ -76,6 +76,78 @@ namespace Microsoft.AspNetCore.Components.Authorization edit => AssertPrependText(batch, edit, "Hello from the page with message: Hello, world!")); } + [Fact] + public void AuthorizesWhenResourceIsSet() + { + // Arrange + var routeData = new RouteData(typeof(TestPageRequiringAuthorization), new Dictionary + { + { nameof(TestPageRequiringAuthorization.Message), "Hello, world!" } + }); + var resource = "foo"; + _testAuthorizationService.NextResult = AuthorizationResult.Success(); + + // Act + _renderer.RenderRootComponent(_authorizeRouteViewComponentId, ParameterView.FromDictionary(new Dictionary + { + { nameof(AuthorizeRouteView.RouteData), routeData }, + { nameof(AuthorizeRouteView.DefaultLayout), typeof(TestLayout) }, + { nameof(AuthorizeRouteView.Resource), resource } + })); + + // Assert: renders layout + var batch = _renderer.Batches.Single(); + var layoutDiff = batch.GetComponentDiffs().Single(); + Assert.Collection(layoutDiff.Edits, + edit => AssertPrependText(batch, edit, "Layout starts here"), + edit => + { + Assert.Equal(RenderTreeEditType.PrependFrame, edit.Type); + AssertFrame.Component(batch.ReferenceFrames[edit.ReferenceFrameIndex]); + }, + edit => AssertPrependText(batch, edit, "Layout ends here")); + + // Assert: renders page + var pageDiff = batch.GetComponentDiffs().Single(); + Assert.Collection(pageDiff.Edits, + edit => AssertPrependText(batch, edit, "Hello from the page with message: Hello, world!")); + + // Assert: Asserts that the Resource is present and set to "foo" + Assert.Collection(_testAuthorizationService.AuthorizeCalls, call=> + { + Assert.Equal(resource, call.resource.ToString()); + }); + } + + [Fact] + public void NotAuthorizedWhenResourceMissing() + { + // Arrange + var routeData = new RouteData(typeof(TestPageRequiringAuthorization), EmptyParametersDictionary); + _testAuthorizationService.NextResult = AuthorizationResult.Failed(); + + // Act + _renderer.RenderRootComponent(_authorizeRouteViewComponentId, ParameterView.FromDictionary(new Dictionary + { + { nameof(AuthorizeRouteView.RouteData), routeData }, + { nameof(AuthorizeRouteView.DefaultLayout), typeof(TestLayout) }, + })); + + // Assert: renders layout containing "not authorized" message + var batch = _renderer.Batches.Single(); + var layoutDiff = batch.GetComponentDiffs().Single(); + Assert.Collection(layoutDiff.Edits, + edit => AssertPrependText(batch, edit, "Layout starts here"), + edit => AssertPrependText(batch, edit, "Not authorized"), + edit => AssertPrependText(batch, edit, "Layout ends here")); + + // Assert: Asserts that the Resource is Null + Assert.Collection(_testAuthorizationService.AuthorizeCalls, call=> + { + Assert.Null(call.resource); + }); + } + [Fact] public void WhenNotAuthorized_RendersDefaultNotAuthorizedContentInsideLayout() { From 4b943417a7d3e266d3ac998b3ec7e8ffff429910 Mon Sep 17 00:00:00 2001 From: Jan-Willem Spuij Date: Thu, 16 Jul 2020 15:10:15 +0200 Subject: [PATCH 28/75] Switched order of attribute initialization and DOM addition. Fixes #6218. --- .../Web.JS/dist/Release/blazor.server.js | 2 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Rendering/BrowserRenderer.ts | 47 ++++++++++++++----- src/Components/test/E2ETest/Tests/BindTest.cs | 4 ++ .../test/E2ETest/Tests/EventTest.cs | 11 +++++ .../BasicTestApp/BindCasesComponent.razor | 12 ++++- .../test/testassets/BasicTestApp/Index.razor | 1 + ...derAttributesBeforeConnectedCallback.razor | 14 ++++++ .../BasicTestApp/wwwroot/index.html | 1 + .../wwwroot/js/renderattributestest.js | 9 ++++ .../TestServer/Pages/_ServerHost.cshtml | 1 + 11 files changed, 89 insertions(+), 15 deletions(-) create mode 100644 src/Components/test/testassets/BasicTestApp/RenderAttributesBeforeConnectedCallback.razor create mode 100644 src/Components/test/testassets/BasicTestApp/wwwroot/js/renderattributestest.js diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index a576b4914e..ee1868075c 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh * @license MIT */ -var r=n(55),o=n(56),i=n(57);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(58),i=n(21),a=n(71),s=n(74),c=n(75);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(60);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(61),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(39).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(67).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(70)},f=n(40),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(41);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(68).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(59); +var r=n(55),o=n(56),i=n(57);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(58),i=n(21),a=n(71),s=n(74),c=n(75);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(60);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(61),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(39).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(67).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(70)},f=n(40),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(41);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(68).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(59); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index 6786a93fb0..578dbea90e 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=46)}([,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=c();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,m),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var u=JSON.stringify(i,m);c().beginInvokeDotNetFromJS(a,e,t,r,u)}catch(e){l(a,!1,e)}return s}function c(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function d(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(32),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),y=m+f.count(a),v=m;v0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(47),c=n(4),l=n(50),f=n(36),d=n(19),p=n(51),h=n(52),m=n(53),y=n(5),v=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(v)throw new Error("Blazor has already started.");return v=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){y.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}y.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){v("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,y=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),y.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function y(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(34),a=n(35);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],y=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,y,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(32),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),y=m+f.count(a),v=m;v0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(47),c=n(4),l=n(50),f=n(36),d=n(19),p=n(51),h=n(52),m=n(53),y=n(5),v=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(v)throw new Error("Blazor has already started.");return v=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){y.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}y.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){v("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,y=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),y.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function y(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(34),a=n(35);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],y=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,y,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] in two different ways: - // [1] When inserting a corresponding [MethodImpl(MethodImplOptions.AggressiveInlining)] +#if NETSTANDARD2_0 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] +#endif public static void SecureZeroMemory(byte* buffer, uint byteCount) { if (byteCount != 0) @@ -145,7 +159,9 @@ namespace Microsoft.AspNetCore.Cryptography /// Securely clears a memory buffer. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] +#if NETSTANDARD2_0 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] +#endif public static void SecureZeroMemory(byte* buffer, ulong byteCount) { if (byteCount != 0) @@ -163,7 +179,9 @@ namespace Microsoft.AspNetCore.Cryptography /// /// Securely clears a memory buffer. /// +#if NETSTANDARD2_0 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] +#endif public static void SecureZeroMemory(byte* buffer, IntPtr length) { if (sizeof(IntPtr) == 4) diff --git a/src/DataProtection/Cryptography.Internal/src/UnsafeNativeMethods.cs b/src/DataProtection/Cryptography.Internal/src/UnsafeNativeMethods.cs index 3a5a4d8db3..d638b79d8d 100644 --- a/src/DataProtection/Cryptography.Internal/src/UnsafeNativeMethods.cs +++ b/src/DataProtection/Cryptography.Internal/src/UnsafeNativeMethods.cs @@ -82,13 +82,17 @@ namespace Microsoft.AspNetCore.Cryptography [In] uint dwFlags); [DllImport(BCRYPT_LIB, CallingConvention = CallingConvention.Winapi)] +#if NETSTANDARD2_0 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] +#endif // http://msdn.microsoft.com/en-us/library/windows/desktop/aa375399(v=vs.85).aspx internal static extern int BCryptDestroyHash( [In] IntPtr hHash); [DllImport(BCRYPT_LIB, CallingConvention = CallingConvention.Winapi)] +#if NETSTANDARD2_0 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] +#endif // http://msdn.microsoft.com/en-us/library/windows/desktop/aa375404(v=vs.85).aspx internal static extern int BCryptDestroyKey( [In] IntPtr hKey); @@ -240,7 +244,9 @@ namespace Microsoft.AspNetCore.Cryptography */ [DllImport(NCRYPT_LIB, CallingConvention = CallingConvention.Winapi)] +#if NETSTANDARD2_0 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] +#endif // http://msdn.microsoft.com/en-us/library/windows/desktop/hh706799(v=vs.85).aspx internal static extern int NCryptCloseProtectionDescriptor( [In] IntPtr hDescriptor); diff --git a/src/DataProtection/DataProtection/src/Cng/DpapiSecretSerializerHelper.cs b/src/DataProtection/DataProtection/src/Cng/DpapiSecretSerializerHelper.cs index 61bbb4f9ea..2fa693851f 100644 --- a/src/DataProtection/DataProtection/src/Cng/DpapiSecretSerializerHelper.cs +++ b/src/DataProtection/DataProtection/src/Cng/DpapiSecretSerializerHelper.cs @@ -78,7 +78,9 @@ namespace Microsoft.AspNetCore.DataProtection.Cng }; var dataOut = default(DATA_BLOB); +#if NETSTANDARD2_0 RuntimeHelpers.PrepareConstrainedRegions(); +#endif try { @@ -168,7 +170,9 @@ namespace Microsoft.AspNetCore.DataProtection.Cng { var handleAcquired = false; +#if NETSTANDARD2_0 RuntimeHelpers.PrepareConstrainedRegions(); +#endif try { @@ -217,7 +221,9 @@ namespace Microsoft.AspNetCore.DataProtection.Cng }; var dataOut = default(DATA_BLOB); +#if NETSTANDARD2_0 RuntimeHelpers.PrepareConstrainedRegions(); +#endif try { @@ -290,7 +296,9 @@ namespace Microsoft.AspNetCore.DataProtection.Cng { var handleAcquired = false; +#if NETSTANDARD2_0 RuntimeHelpers.PrepareConstrainedRegions(); +#endif try { diff --git a/src/Grpc/test/InteropTests/InteropTests.csproj b/src/Grpc/test/InteropTests/InteropTests.csproj index bcbd1fc4b6..24d479432b 100644 --- a/src/Grpc/test/InteropTests/InteropTests.csproj +++ b/src/Grpc/test/InteropTests/InteropTests.csproj @@ -3,6 +3,9 @@ true $(DefaultNetCoreTargetFramework) + + + false diff --git a/src/Grpc/test/testassets/InteropClient/InteropClient.cs b/src/Grpc/test/testassets/InteropClient/InteropClient.cs index 273bcd1950..d6b47ab241 100644 --- a/src/Grpc/test/testassets/InteropClient/InteropClient.cs +++ b/src/Grpc/test/testassets/InteropClient/InteropClient.cs @@ -97,7 +97,7 @@ namespace InteropTestsClient services.AddLogging(configure => { configure.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); - configure.AddConsole(loggerOptions => + configure.AddSimpleConsole(loggerOptions => { loggerOptions.IncludeScopes = true; loggerOptions.DisableColors = true; diff --git a/src/Grpc/test/testassets/InteropWebsite/Program.cs b/src/Grpc/test/testassets/InteropWebsite/Program.cs index 0648004d95..3efd0d647c 100644 --- a/src/Grpc/test/testassets/InteropWebsite/Program.cs +++ b/src/Grpc/test/testassets/InteropWebsite/Program.cs @@ -37,7 +37,7 @@ namespace InteropTestsWebsite Host.CreateDefaultBuilder(args) .ConfigureLogging(builder => { - builder.AddConsole(o => o.DisableColors = true); + builder.AddSimpleConsole(o => o.DisableColors = true); builder.SetMinimumLevel(LogLevel.Trace); }) .ConfigureWebHostDefaults(webBuilder => diff --git a/src/Http/Http.Abstractions/test/HttpResponseWritingExtensionsTests.cs b/src/Http/Http.Abstractions/test/HttpResponseWritingExtensionsTests.cs index ed0c103006..bdbb48375e 100644 --- a/src/Http/Http.Abstractions/test/HttpResponseWritingExtensionsTests.cs +++ b/src/Http/Http.Abstractions/test/HttpResponseWritingExtensionsTests.cs @@ -80,9 +80,9 @@ namespace Microsoft.AspNetCore.Http { Encoding.BigEndianUnicode }, { Encoding.Unicode }, { Encoding.UTF32 }, -#pragma warning disable CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning disable CS0618, SYSLIB0001 // Type or member is obsolete { Encoding.UTF7 }, -#pragma warning restore CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning restore CS0618, SYSLIB0001 // Type or member is obsolete { Encoding.UTF8 } }; diff --git a/src/Http/Http/src/Features/FormFeature.cs b/src/Http/Http/src/Features/FormFeature.cs index d7f1888139..8b4d06896c 100644 --- a/src/Http/Http/src/Features/FormFeature.cs +++ b/src/Http/Http/src/Features/FormFeature.cs @@ -276,9 +276,9 @@ namespace Microsoft.AspNetCore.Http.Features private static Encoding FilterEncoding(Encoding? encoding) { // UTF-7 is insecure and should not be honored. UTF-8 will succeed for most cases. -#pragma warning disable CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning disable CS0618, SYSLIB0001 // Type or member is obsolete if (encoding == null || Encoding.UTF7.Equals(encoding)) -#pragma warning restore CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning restore CS0618, SYSLIB0001 // Type or member is obsolete { return Encoding.UTF8; } diff --git a/src/Http/WebUtilities/src/FormPipeReader.cs b/src/Http/WebUtilities/src/FormPipeReader.cs index bcb553458d..18a9762f7f 100644 --- a/src/Http/WebUtilities/src/FormPipeReader.cs +++ b/src/Http/WebUtilities/src/FormPipeReader.cs @@ -47,10 +47,10 @@ namespace Microsoft.AspNetCore.WebUtilities public FormPipeReader(PipeReader pipeReader, Encoding encoding) { -#pragma warning disable CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning disable CS0618, SYSLIB0001 // Type or member is obsolete if (encoding == Encoding.UTF7) { -#pragma warning restore CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning restore CS0618, SYSLIB0001 // Type or member is obsolete throw new ArgumentException("UTF7 is unsupported and insecure. Please select a different encoding."); } @@ -271,7 +271,7 @@ namespace Microsoft.AspNetCore.WebUtilities var keyValueReader = new SequenceReader(keyValuePair); ReadOnlySequence value; - if (keyValueReader.TryReadTo(out var key, equalsDelimiter)) + if (keyValueReader.TryReadTo(out ReadOnlySequence key, equalsDelimiter)) { if (key.Length > KeyLengthLimit) { diff --git a/src/Http/WebUtilities/src/MultipartSectionStreamExtensions.cs b/src/Http/WebUtilities/src/MultipartSectionStreamExtensions.cs index 58c16bd605..e7d9ab0353 100644 --- a/src/Http/WebUtilities/src/MultipartSectionStreamExtensions.cs +++ b/src/Http/WebUtilities/src/MultipartSectionStreamExtensions.cs @@ -34,9 +34,9 @@ namespace Microsoft.AspNetCore.WebUtilities MediaTypeHeaderValue.TryParse(section.ContentType, out var sectionMediaType); var streamEncoding = sectionMediaType?.Encoding; -#pragma warning disable CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning disable CS0618, SYSLIB0001 // Type or member is obsolete if (streamEncoding == null || streamEncoding == Encoding.UTF7) -#pragma warning restore CS0618, MSLIB0001 // Type or member is obsolete +#pragma warning restore CS0618, SYSLIB0001 // Type or member is obsolete { streamEncoding = Encoding.UTF8; } diff --git a/src/ProjectTemplates/Shared/Project.cs b/src/ProjectTemplates/Shared/Project.cs index 939a49089f..cb28d482f4 100644 --- a/src/ProjectTemplates/Shared/Project.cs +++ b/src/ProjectTemplates/Shared/Project.cs @@ -145,7 +145,7 @@ namespace Templates.Test.Helpers ["ASPNETCORE_Logging__Console__LogLevel__Default"] = "Debug", ["ASPNETCORE_Logging__Console__LogLevel__System"] = "Debug", ["ASPNETCORE_Logging__Console__LogLevel__Microsoft"] = "Debug", - ["ASPNETCORE_Logging__Console__IncludeScopes"] = "true", + ["ASPNETCORE_Logging__Console__FormatterOptions__IncludeScopes"] = "true", }; var launchSettingsJson = Path.Combine(TemplateOutputDir, "Properties", "launchSettings.json"); @@ -185,7 +185,7 @@ namespace Templates.Test.Helpers ["ASPNETCORE_Logging__Console__LogLevel__Default"] = "Debug", ["ASPNETCORE_Logging__Console__LogLevel__System"] = "Debug", ["ASPNETCORE_Logging__Console__LogLevel__Microsoft"] = "Debug", - ["ASPNETCORE_Logging__Console__IncludeScopes"] = "true", + ["ASPNETCORE_Logging__Console__FormatterOptions__IncludeScopes"] = "true", }; var projectDll = $"{ProjectName}.dll"; diff --git a/src/Servers/HttpSys/src/NativeInterop/SafeLibraryHandle.cs b/src/Servers/HttpSys/src/NativeInterop/SafeLibraryHandle.cs index bf3254c6d6..0e16996fcf 100644 --- a/src/Servers/HttpSys/src/NativeInterop/SafeLibraryHandle.cs +++ b/src/Servers/HttpSys/src/NativeInterop/SafeLibraryHandle.cs @@ -76,7 +76,6 @@ namespace Microsoft.AspNetCore.Server.HttpSys { // http://msdn.microsoft.com/en-us/library/ms683152(v=vs.85).aspx [return: MarshalAs(UnmanagedType.Bool)] - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [DllImport("kernel32.dll", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)] internal static extern bool FreeLibrary(IntPtr hModule); diff --git a/src/Servers/IIS/IIS/src/Core/WrappingStream.cs b/src/Servers/IIS/IIS/src/Core/WrappingStream.cs index e765550b8f..d9d3b9bc37 100644 --- a/src/Servers/IIS/IIS/src/Core/WrappingStream.cs +++ b/src/Servers/IIS/IIS/src/Core/WrappingStream.cs @@ -107,6 +107,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core public override void EndWrite(IAsyncResult asyncResult) => _inner.EndWrite(asyncResult); + [Obsolete("This Remoting API is not supported and throws PlatformNotSupportedException.", DiagnosticId = "SYSLIB0010", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] public override object InitializeLifetimeService() => _inner.InitializeLifetimeService(); diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/WrappingStream.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/WrappingStream.cs index c62cda3342..bec06edcb2 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/WrappingStream.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/WrappingStream.cs @@ -107,6 +107,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure public override void EndWrite(IAsyncResult asyncResult) => _inner.EndWrite(asyncResult); + [Obsolete("This Remoting API is not supported and throws PlatformNotSupportedException.", DiagnosticId = "SYSLIB0010", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] public override object InitializeLifetimeService() => _inner.InitializeLifetimeService(); diff --git a/src/Shared/test/Shared.Tests/DotNetMuxerTests.cs b/src/Shared/test/Shared.Tests/DotNetMuxerTests.cs index 8840d87bb8..2835380142 100644 --- a/src/Shared/test/Shared.Tests/DotNetMuxerTests.cs +++ b/src/Shared/test/Shared.Tests/DotNetMuxerTests.cs @@ -10,7 +10,7 @@ namespace Microsoft.Extensions.CommandLineUtils { public class DotNetMuxerTests { - [Fact] + [Fact(Skip = "https://github.com/dotnet/aspnetcore/issues/24082")] public void FindsTheMuxer() { var muxerPath = DotNetMuxer.MuxerPath; diff --git a/src/SignalR/clients/ts/FunctionalTests/Program.cs b/src/SignalR/clients/ts/FunctionalTests/Program.cs index bc1cc0a323..358bba527e 100644 --- a/src/SignalR/clients/ts/FunctionalTests/Program.cs +++ b/src/SignalR/clients/ts/FunctionalTests/Program.cs @@ -35,7 +35,7 @@ namespace FunctionalTests webHostBuilder .ConfigureLogging(factory => { - factory.AddConsole(options => + factory.AddSimpleConsole(options => { options.IncludeScopes = true; options.TimestampFormat = "[HH:mm:ss] "; From 3cf8b5cf10cbf76ccce08d8ef229b7b17d58e1ff Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Wed, 22 Jul 2020 06:54:00 +0430 Subject: [PATCH 40/75] Add IgnoreAntiforgeryToken to Error Page Fixes https://github.com/dotnet/aspnetcore/issues/23759 --- .../ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs | 1 + .../content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs index 3867a3976d..92282ce4c2 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs @@ -10,6 +10,7 @@ using Microsoft.Extensions.Logging; namespace ComponentsWebAssembly_CSharp.Server.Pages { [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { public string RequestId { get; set; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs index 302c5ce4a6..10108d2b10 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs @@ -10,6 +10,7 @@ using Microsoft.Extensions.Logging; namespace Company.WebApplication1.Pages { [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { public string RequestId { get; set; } From 113805aba8162ba7bac42943bcb1324801c20f46 Mon Sep 17 00:00:00 2001 From: David Fowler Date: Wed, 22 Jul 2020 08:58:44 -0700 Subject: [PATCH 41/75] Add support for instantiating the startup class (#24144) * Add support for instantiating the startup class - Adds an overload of UseStartup that takes a factory so users can control the instance creation. The factory is given the WebHostBuilderContext to expose access to configuration and IWebHostEnvironment. - Make sure only one startup delegate runs, the last one registered. * Update src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs Co-authored-by: Chris Ross * PR feedback and bug fixes - Use actual throw expressions... - Added null checks Co-authored-by: Chris Ross --- .../src/GenericHost/GenericWebHostBuilder.cs | 45 ++++-- .../HostingStartupWebHostBuilder.cs | 5 + .../src/GenericHost/ISupportsStartup.cs | 1 + .../Hosting/src/Internal/StartupLoader.cs | 11 +- .../Hosting/src/WebHostBuilderExtensions.cs | 47 ++++++ .../Fakes/GenericWebHostBuilderWrapper.cs | 6 + .../Hosting/test/WebHostBuilderTests.cs | 141 +++++++++++++++++- 7 files changed, 239 insertions(+), 17 deletions(-) diff --git a/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs b/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs index 8bf97d5763..a9625a7907 100644 --- a/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs +++ b/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs @@ -21,6 +21,7 @@ namespace Microsoft.AspNetCore.Hosting { private readonly IHostBuilder _builder; private readonly IConfiguration _config; + private object _startupObject; private readonly object _startupKey = new object(); private AggregateException _hostingStartupErrors; @@ -198,10 +199,12 @@ namespace Microsoft.AspNetCore.Hosting public IWebHostBuilder UseStartup(Type startupType) { // UseStartup can be called multiple times. Only run the last one. - _builder.Properties["UseStartup.StartupType"] = startupType; + _startupObject = startupType; + _builder.ConfigureServices((context, services) => { - if (_builder.Properties.TryGetValue("UseStartup.StartupType", out var cachedType) && (Type)cachedType == startupType) + // Run this delegate if the startup type matches + if (object.ReferenceEquals(_startupObject, startupType)) { UseStartup(startupType, context, services); } @@ -210,13 +213,31 @@ namespace Microsoft.AspNetCore.Hosting return this; } - private void UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services) + public IWebHostBuilder UseStartup(Func startupFactory) + { + // Clear the startup type + _startupObject = startupFactory; + + _builder.ConfigureServices((context, services) => + { + // UseStartup can be called multiple times. Only run the last one. + if (object.ReferenceEquals(_startupObject, startupFactory)) + { + var webHostBuilderContext = GetWebHostBuilderContext(context); + var instance = startupFactory(webHostBuilderContext) ?? throw new InvalidOperationException("The specified factory returned null startup instance."); + UseStartup(instance.GetType(), context, services, instance); + } + }); + + return this; + } + + private void UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services, object instance = null) { var webHostBuilderContext = GetWebHostBuilderContext(context); var webHostOptions = (WebHostOptions)context.Properties[typeof(WebHostOptions)]; ExceptionDispatchInfo startupError = null; - object instance = null; ConfigureBuilder configureBuilder = null; try @@ -231,7 +252,7 @@ namespace Microsoft.AspNetCore.Hosting throw new NotSupportedException($"ConfigureServices returning an {typeof(IServiceProvider)} isn't supported."); } - instance = ActivatorUtilities.CreateInstance(new HostServiceProvider(webHostBuilderContext), startupType); + instance ??= ActivatorUtilities.CreateInstance(new HostServiceProvider(webHostBuilderContext), startupType); context.Properties[_startupKey] = instance; // Startup.ConfigureServices @@ -296,13 +317,19 @@ namespace Microsoft.AspNetCore.Hosting public IWebHostBuilder Configure(Action configure) { + // Clear the startup type + _startupObject = configure; + _builder.ConfigureServices((context, services) => { - services.Configure(options => + if (object.ReferenceEquals(_startupObject, configure)) { - var webhostBuilderContext = GetWebHostBuilderContext(context); - options.ConfigureApplication = app => configure(webhostBuilderContext, app); - }); + services.Configure(options => + { + var webhostBuilderContext = GetWebHostBuilderContext(context); + options.ConfigureApplication = app => configure(webhostBuilderContext, app); + }); + } }); return this; diff --git a/src/Hosting/Hosting/src/GenericHost/HostingStartupWebHostBuilder.cs b/src/Hosting/Hosting/src/GenericHost/HostingStartupWebHostBuilder.cs index 42cda1cc81..f4034fc38b 100644 --- a/src/Hosting/Hosting/src/GenericHost/HostingStartupWebHostBuilder.cs +++ b/src/Hosting/Hosting/src/GenericHost/HostingStartupWebHostBuilder.cs @@ -75,5 +75,10 @@ namespace Microsoft.AspNetCore.Hosting { return _builder.UseStartup(startupType); } + + public IWebHostBuilder UseStartup(Func startupFactory) + { + return _builder.UseStartup(startupFactory); + } } } diff --git a/src/Hosting/Hosting/src/GenericHost/ISupportsStartup.cs b/src/Hosting/Hosting/src/GenericHost/ISupportsStartup.cs index 8a2d1dd8ab..998f73d06b 100644 --- a/src/Hosting/Hosting/src/GenericHost/ISupportsStartup.cs +++ b/src/Hosting/Hosting/src/GenericHost/ISupportsStartup.cs @@ -10,5 +10,6 @@ namespace Microsoft.AspNetCore.Hosting { IWebHostBuilder Configure(Action configure); IWebHostBuilder UseStartup(Type startupType); + IWebHostBuilder UseStartup(Func startupFactory); } } diff --git a/src/Hosting/Hosting/src/Internal/StartupLoader.cs b/src/Hosting/Hosting/src/Internal/StartupLoader.cs index 46c195c22a..8c80884b83 100644 --- a/src/Hosting/Hosting/src/Internal/StartupLoader.cs +++ b/src/Hosting/Hosting/src/Internal/StartupLoader.cs @@ -37,15 +37,14 @@ namespace Microsoft.AspNetCore.Hosting // // If the Startup class ConfigureServices returns an and there is at least an registered we // throw as the filters can't be applied. - public static StartupMethods LoadMethods(IServiceProvider hostingServiceProvider, Type startupType, string environmentName) + public static StartupMethods LoadMethods(IServiceProvider hostingServiceProvider, Type startupType, string environmentName, object instance = null) { var configureMethod = FindConfigureDelegate(startupType, environmentName); var servicesMethod = FindConfigureServicesDelegate(startupType, environmentName); var configureContainerMethod = FindConfigureContainerDelegate(startupType, environmentName); - object instance = null; - if (!configureMethod.MethodInfo.IsStatic || (servicesMethod != null && !servicesMethod.MethodInfo.IsStatic)) + if (instance == null && (!configureMethod.MethodInfo.IsStatic || (servicesMethod != null && !servicesMethod.MethodInfo.IsStatic))) { instance = ActivatorUtilities.GetServiceOrCreateInstance(hostingServiceProvider, startupType); } @@ -54,7 +53,7 @@ namespace Microsoft.AspNetCore.Hosting // going to be used for anything. var type = configureContainerMethod.MethodInfo != null ? configureContainerMethod.GetContainerType() : typeof(object); - var builder = (ConfigureServicesDelegateBuilder) Activator.CreateInstance( + var builder = (ConfigureServicesDelegateBuilder)Activator.CreateInstance( typeof(ConfigureServicesDelegateBuilder<>).MakeGenericType(type), hostingServiceProvider, servicesMethod, @@ -104,13 +103,13 @@ namespace Microsoft.AspNetCore.Hosting // The ConfigureContainer pipeline needs an Action as source, so we just adapt the // signature with this function. - void Source(TContainerBuilder containerBuilder) => + void Source(TContainerBuilder containerBuilder) => action(containerBuilder); // The ConfigureContainerBuilder.ConfigureContainerFilters expects an Action as value, but our pipeline // produces an Action given a source, so we wrap it on an Action that internally casts // the object containerBuilder to TContainerBuilder to match the expected signature of our ConfigureContainer pipeline. - void Target(object containerBuilder) => + void Target(object containerBuilder) => BuildStartupConfigureContainerFiltersPipeline(Source)((TContainerBuilder)containerBuilder); } } diff --git a/src/Hosting/Hosting/src/WebHostBuilderExtensions.cs b/src/Hosting/Hosting/src/WebHostBuilderExtensions.cs index 9189786b1f..5d2b7133cc 100644 --- a/src/Hosting/Hosting/src/WebHostBuilderExtensions.cs +++ b/src/Hosting/Hosting/src/WebHostBuilderExtensions.cs @@ -61,6 +61,48 @@ namespace Microsoft.AspNetCore.Hosting }); } + /// + /// Specify a factory that creates the startup instance to be used by the web host. + /// + /// The to configure. + /// A delegate that specifies a factory for the startup class. + /// The . + public static IWebHostBuilder UseStartup(this IWebHostBuilder hostBuilder, Func startupFactory) + { + if (startupFactory == null) + { + throw new ArgumentNullException(nameof(startupFactory)); + } + + var startupAssemblyName = startupFactory.GetMethodInfo().DeclaringType.GetTypeInfo().Assembly.GetName().Name; + + hostBuilder.UseSetting(WebHostDefaults.ApplicationKey, startupAssemblyName); + + // Light up the GenericWebHostBuilder implementation + if (hostBuilder is ISupportsStartup supportsStartup) + { + return supportsStartup.UseStartup(startupFactory); + } + + return hostBuilder + .ConfigureServices((context, services) => + { + services.AddSingleton(typeof(IStartup), sp => + { + var instance = startupFactory(context) ?? throw new InvalidOperationException("The specified factory returned null startup instance."); + + var hostingEnvironment = sp.GetRequiredService(); + + // Check if the instance implements IStartup before wrapping + if (instance is IStartup startup) + { + return startup; + } + + return new ConventionBasedStartup(StartupLoader.LoadMethods(sp, instance.GetType(), hostingEnvironment.EnvironmentName, instance)); + }); + }); + } /// /// Specify the startup type to be used by the web host. @@ -70,6 +112,11 @@ namespace Microsoft.AspNetCore.Hosting /// The . public static IWebHostBuilder UseStartup(this IWebHostBuilder hostBuilder, Type startupType) { + if (startupType == null) + { + throw new ArgumentNullException(nameof(startupType)); + } + var startupAssemblyName = startupType.GetTypeInfo().Assembly.GetName().Name; hostBuilder.UseSetting(WebHostDefaults.ApplicationKey, startupAssemblyName); diff --git a/src/Hosting/Hosting/test/Fakes/GenericWebHostBuilderWrapper.cs b/src/Hosting/Hosting/test/Fakes/GenericWebHostBuilderWrapper.cs index 876cc7199b..e87be3a9ad 100644 --- a/src/Hosting/Hosting/test/Fakes/GenericWebHostBuilderWrapper.cs +++ b/src/Hosting/Hosting/test/Fakes/GenericWebHostBuilderWrapper.cs @@ -73,5 +73,11 @@ namespace Microsoft.AspNetCore.Hosting.Tests.Fakes _builder.UseStartup(startupType); return this; } + + public IWebHostBuilder UseStartup(Func startupFactory) + { + _builder.UseStartup(startupFactory); + return this; + } } } diff --git a/src/Hosting/Hosting/test/WebHostBuilderTests.cs b/src/Hosting/Hosting/test/WebHostBuilderTests.cs index e34ae49388..81a8ab4941 100644 --- a/src/Hosting/Hosting/test/WebHostBuilderTests.cs +++ b/src/Hosting/Hosting/test/WebHostBuilderTests.cs @@ -6,15 +6,19 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; +using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; +using System.Web; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting.Fakes; using Microsoft.AspNetCore.Hosting.Server; using Microsoft.AspNetCore.Hosting.Tests.Fakes; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.Http.Features; +using Microsoft.AspNetCore.WebUtilities; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -68,6 +72,71 @@ namespace Microsoft.AspNetCore.Hosting } } + [Theory] + [MemberData(nameof(DefaultWebHostBuildersWithConfig))] + public void UseStartupThrowsWhenFactoryIsNull(IWebHostBuilder builder) + { + var server = new TestServer(); + Assert.Throws(() => builder.UseServer(server).UseStartup((Func)null)); + } + + [Theory] + [MemberData(nameof(DefaultWebHostBuilders))] + public void UseStartupThrowsWhenFactoryReturnsNull(IWebHostBuilder builder) + { + var server = new TestServer(); + var ex = Assert.Throws(() => builder.UseServer(server).UseStartup(context => null).Build()); + Assert.Equal("The specified factory returned null startup instance.", ex.Message); + } + + [Theory] + [MemberData(nameof(DefaultWebHostBuildersWithConfig))] + public async Task MultipleUseStartupCallsLastWins(IWebHostBuilder builder) + { + var server = new TestServer(); + var host = builder.UseServer(server) + .UseStartup() + .UseStartup(context => throw new InvalidOperationException("This doesn't run")) + .Configure(app => + { + throw new InvalidOperationException("This doesn't run"); + }) + .Configure(app => + { + app.Run(context => + { + return context.Response.WriteAsync("This wins"); + }); + }) + .Build(); + using (host) + { + await host.StartAsync(); + await AssertResponseContains(server.RequestDelegate, "This wins"); + } + } + + [Theory] + [MemberData(nameof(DefaultWebHostBuildersWithConfig))] + public async Task UseStartupFactoryWorks(IWebHostBuilder builder) + { + void ConfigureServices(IServiceCollection services) { } + void Configure(IApplicationBuilder app) + { + app.Run(context => context.Response.WriteAsync("UseStartupFactoryWorks")); + } + + var server = new TestServer(); + var host = builder.UseServer(server) + .UseStartup(context => new DelegatingStartup(ConfigureServices, Configure)) + .Build(); + using (host) + { + await host.StartAsync(); + await AssertResponseContains(server.RequestDelegate, "UseStartupFactoryWorks"); + } + } + [Theory] [MemberData(nameof(DefaultWebHostBuildersWithConfig))] public async Task StartupCtorThrows_Fallback(IWebHostBuilder builder) @@ -199,7 +268,7 @@ namespace Microsoft.AspNetCore.Hosting options.ValidateScopes = true; }); - using var host = hostBuilder.Build(); + using var host = hostBuilder.Build(); Assert.Throws(() => host.Start()); Assert.True(configurationCallbackCalled); } @@ -728,6 +797,22 @@ namespace Microsoft.AspNetCore.Hosting } } + [Theory] + [MemberData(nameof(DefaultWebHostBuilders))] + public void DefaultApplicationNameWithUseStartupFactory(IWebHostBuilder builder) + { + using (var host = builder + .UseServer(new TestServer()) + .UseStartup(context => new DelegatingStartup(s => { }, app => { })) + .Build()) + { + var hostingEnv = host.Services.GetService(); + + // Should be the assembly containing this test, because that's where the delegate comes from + Assert.Equal(typeof(WebHostBuilderTests).Assembly.GetName().Name, hostingEnv.ApplicationName); + } + } + [Theory] [MemberData(nameof(DefaultWebHostBuilders))] public void Configure_SupportsNonStaticMethodDelegate(IWebHostBuilder builder) @@ -770,6 +855,27 @@ namespace Microsoft.AspNetCore.Hosting } } + [Fact] + public async Task UseStartupImplementingIStartupWorks() + { + void Configure(IApplicationBuilder app) + { + app.Run(context => context.Response.WriteAsync("Configure")); + } + + IServiceProvider ConfigureServices(IServiceCollection services) => services.BuildServiceProvider(); + + var builder = CreateWebHostBuilder(); + var server = new TestServer(); + using (var host = builder.UseServer(server) + .UseStartup(context => new DelegatingStartupWithIStartup(ConfigureServices, Configure)) + .Build()) + { + await host.StartAsync(); + await AssertResponseContains(server.RequestDelegate, "Configure"); + } + } + [Theory] [MemberData(nameof(DefaultWebHostBuildersWithConfig))] public void Build_DoesNotOverrideILoggerFactorySetByConfigureServices(IWebHostBuilder builder) @@ -1218,7 +1324,7 @@ namespace Microsoft.AspNetCore.Hosting Assert.Equal("nestedvalue", builder.GetSetting("key")); - using var host = builder.Build(); + using var host = builder.Build(); var appConfig = host.Services.GetRequiredService(); Assert.Equal("nestedvalue", appConfig["key"]); } @@ -1574,6 +1680,37 @@ namespace Microsoft.AspNetCore.Hosting } } + private class DelegatingStartupWithIStartup : IStartup + { + private readonly Func _configureServices; + private readonly Action _configure; + + public DelegatingStartupWithIStartup(Func configureServices, Action configure) + { + _configureServices = configureServices; + _configure = configure; + } + + // These are explicitly implemented to verify they don't get called via reflection + IServiceProvider IStartup.ConfigureServices(IServiceCollection services) => _configureServices(services); + void IStartup.Configure(IApplicationBuilder app) => _configure(app); + } + + public class DelegatingStartup + { + private readonly Action _configureServices; + private readonly Action _configure; + + public DelegatingStartup(Action configureServices, Action configure) + { + _configureServices = configureServices; + _configure = configure; + } + + public void ConfigureServices(IServiceCollection services) => _configureServices(services); + public void Configure(IApplicationBuilder app) => _configure(app); + } + public class StartupWithResolvedDisposableThatThrows { public StartupWithResolvedDisposableThatThrows(DisposableService service) From 0ef891f75e878eb95e6e3f996552006f8eb2c4d0 Mon Sep 17 00:00:00 2001 From: Zachary Becknell Date: Wed, 22 Jul 2020 12:50:56 -0400 Subject: [PATCH 42/75] Blazor: Add element/component name for duplicate key (#24153) * Add element/component name for duplicate key * Add in keyword for frame param Co-authored-by: Javier Calvarro Nelson Co-authored-by: Javier Calvarro Nelson --- .../src/RenderTree/RenderTreeDiffBuilder.cs | 18 ++++++++++++++---- .../test/RenderTreeDiffBuilderTest.cs | 6 +++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Components/Components/src/RenderTree/RenderTreeDiffBuilder.cs b/src/Components/Components/src/RenderTree/RenderTreeDiffBuilder.cs index a7892991f4..8f39258ddc 100644 --- a/src/Components/Components/src/RenderTree/RenderTreeDiffBuilder.cs +++ b/src/Components/Components/src/RenderTree/RenderTreeDiffBuilder.cs @@ -318,7 +318,7 @@ namespace Microsoft.AspNetCore.Components.RenderTree { if (result.ContainsKey(key)) { - ThrowExceptionForDuplicateKey(key); + ThrowExceptionForDuplicateKey(key, frame); } result[key] = new KeyedItemInfo(oldStartIndex, -1); @@ -341,7 +341,7 @@ namespace Microsoft.AspNetCore.Components.RenderTree { if (existingEntry.NewIndex >= 0) { - ThrowExceptionForDuplicateKey(key); + ThrowExceptionForDuplicateKey(key, frame); } result[key] = new KeyedItemInfo(existingEntry.OldIndex, newStartIndex); @@ -355,9 +355,19 @@ namespace Microsoft.AspNetCore.Components.RenderTree return result; } - private static void ThrowExceptionForDuplicateKey(object key) + private static void ThrowExceptionForDuplicateKey(object key, in RenderTreeFrame frame) { - throw new InvalidOperationException($"More than one sibling has the same key value, '{key}'. Key values must be unique."); + switch (frame.FrameType) + { + case RenderTreeFrameType.Component: + throw new InvalidOperationException($"More than one sibling of component '{frame.ComponentType}' has the same key value, '{key}'. Key values must be unique."); + + case RenderTreeFrameType.Element: + throw new InvalidOperationException($"More than one sibling of element '{frame.ElementName}' has the same key value, '{key}'. Key values must be unique."); + + default: + throw new InvalidOperationException($"More than one sibling has the same key value, '{key}'. Key values must be unique."); + } } private static object KeyValue(ref RenderTreeFrame frame) diff --git a/src/Components/Components/test/RenderTreeDiffBuilderTest.cs b/src/Components/Components/test/RenderTreeDiffBuilderTest.cs index 9f3ba71809..0ec9e95fa7 100644 --- a/src/Components/Components/test/RenderTreeDiffBuilderTest.cs +++ b/src/Components/Components/test/RenderTreeDiffBuilderTest.cs @@ -340,7 +340,7 @@ namespace Microsoft.AspNetCore.Components.Test // Act/Assert var ex = Assert.Throws(() => GetSingleUpdatedComponent()); - Assert.Equal("More than one sibling has the same key value, 'key1'. Key values must be unique.", ex.Message); + Assert.Equal("More than one sibling of element 'el' has the same key value, 'key1'. Key values must be unique.", ex.Message); } [Fact] @@ -357,7 +357,7 @@ namespace Microsoft.AspNetCore.Components.Test // Act/Assert var ex = Assert.Throws(() => GetSingleUpdatedComponent()); - Assert.Equal("More than one sibling has the same key value, 'key1'. Key values must be unique.", ex.Message); + Assert.Equal("More than one sibling of element 'el' has the same key value, 'key1'. Key values must be unique.", ex.Message); } [Fact] @@ -374,7 +374,7 @@ namespace Microsoft.AspNetCore.Components.Test // Act/Assert var ex = Assert.Throws(() => GetSingleUpdatedComponent()); - Assert.Equal("More than one sibling has the same key value, 'key1'. Key values must be unique.", ex.Message); + Assert.Equal("More than one sibling of element 'el' has the same key value, 'key1'. Key values must be unique.", ex.Message); } [Fact] From f23460e9018b1a03daf61864b85357f91bca6ac0 Mon Sep 17 00:00:00 2001 From: John Luo Date: Wed, 22 Jul 2020 10:02:23 -0700 Subject: [PATCH 43/75] Quarantine flaky test (#24191) --- src/Components/test/E2ETest/Tests/KeyTest.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Components/test/E2ETest/Tests/KeyTest.cs b/src/Components/test/E2ETest/Tests/KeyTest.cs index 71dae5c290..8b8ee57b72 100644 --- a/src/Components/test/E2ETest/Tests/KeyTest.cs +++ b/src/Components/test/E2ETest/Tests/KeyTest.cs @@ -92,6 +92,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/24190")] public void CanDeleteUnkeyed() { PerformTest( From 059fe39ae094a5d7076ad3583ef4bd70fa6aed0c Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Wed, 22 Jul 2020 10:50:55 -0700 Subject: [PATCH 44/75] Try using helix sdk support directly again (#23585) --- eng/helix/content/InstallDotNet.ps1 | 13 ++------ eng/helix/content/RunTests/RunTestsOptions.cs | 7 ---- eng/helix/content/runtests.cmd | 33 ++++++++++--------- eng/helix/content/runtests.sh | 26 ++++----------- eng/helix/helix.proj | 5 +-- eng/targets/Helix.targets | 4 +-- 6 files changed, 32 insertions(+), 56 deletions(-) diff --git a/eng/helix/content/InstallDotNet.ps1 b/eng/helix/content/InstallDotNet.ps1 index 7e87866433..080a14bd7d 100644 --- a/eng/helix/content/InstallDotNet.ps1 +++ b/eng/helix/content/InstallDotNet.ps1 @@ -1,12 +1,10 @@ <# .SYNOPSIS - Installs dotnet sdk and runtime using https://dot.net/v1/dotnet-install.ps1 + Installs dotnet runtime using https://dot.net/v1/dotnet-install.ps1 .DESCRIPTION - Installs dotnet sdk and runtime using https://dot.net/v1/dotnet-install.ps1 + Installs dotnet runtime using https://dot.net/v1/dotnet-install.ps1 .PARAMETER arch The architecture to install. -.PARAMETER sdkVersion - The sdk version to install .PARAMETER runtimeVersion The runtime version to install .PARAMETER installDir @@ -16,9 +14,6 @@ param( [Parameter(Mandatory = $true)] $arch, - [Parameter(Mandatory = $true)] - $sdkVersion, - [Parameter(Mandatory = $true)] $runtimeVersion, @@ -28,8 +23,6 @@ param( & $PSScriptRoot\Download.ps1 "https://dot.net/v1/dotnet-install.ps1" $PSScriptRoot\dotnet-install.ps1 Write-Host "Download of dotnet-install.ps1 complete..." -Write-Host "Installing SDK...& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Version $sdkVersion -InstallDir $installDir" -Invoke-Expression "& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Version $sdkVersion -InstallDir $installDir" Write-Host "Installing Runtime...& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Runtime dotnet -Version $runtimeVersion -InstallDir $installDir" Invoke-Expression "& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Runtime dotnet -Version $runtimeVersion -InstallDir $installDir" -Write-Host "InstallDotNet.ps1 complete..." \ No newline at end of file +Write-Host "InstallDotNet.ps1 complete..." diff --git a/eng/helix/content/RunTests/RunTestsOptions.cs b/eng/helix/content/RunTests/RunTestsOptions.cs index 9e076c9701..e62adef6d5 100644 --- a/eng/helix/content/RunTests/RunTestsOptions.cs +++ b/eng/helix/content/RunTests/RunTestsOptions.cs @@ -21,11 +21,6 @@ namespace RunTests description: "The test dll to run") { Argument = new Argument(), Required = true }, - new Option( - aliases: new string[] { "--sdk" }, - description: "The version of the sdk being used") - { Argument = new Argument(), Required = true }, - new Option( aliases: new string[] { "--runtime" }, description: "The version of the runtime being used") @@ -70,7 +65,6 @@ namespace RunTests var parseResult = command.Parse(args); var options = new RunTestsOptions(); options.Target = parseResult.ValueForOption("--target"); - options.SdkVersion = parseResult.ValueForOption("--sdk"); options.RuntimeVersion = parseResult.ValueForOption("--runtime"); options.HelixQueue = parseResult.ValueForOption("--queue"); options.Architecture = parseResult.ValueForOption("--arch"); @@ -86,7 +80,6 @@ namespace RunTests } public string Target { get; set;} - public string SdkVersion { get; set;} public string RuntimeVersion { get; set;} public string AspNetRuntime { get; set;} public string AspNetRef { get; set;} diff --git a/eng/helix/content/runtests.cmd b/eng/helix/content/runtests.cmd index c1b27b1c89..4b3c4dfea6 100644 --- a/eng/helix/content/runtests.cmd +++ b/eng/helix/content/runtests.cmd @@ -4,35 +4,36 @@ setlocal enabledelayedexpansion REM Use '$' as a variable name prefix to avoid MSBuild variable collisions with these variables set $target=%1 -set $sdkVersion=%2 -set $runtimeVersion=%3 -set $queue=%4 -set $arch=%5 -set $quarantined=%6 -set $ef=%7 -set $aspnetruntime=%8 -set $aspnetref=%9 -REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more -shift +set $runtimeVersion=%2 +set $queue=%3 +set $arch=%4 +set $quarantined=%5 +set $ef=%6 +set $aspnetruntime=%7 +set $aspnetref=%8 set $helixTimeout=%9 +REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more -set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk -set DOTNET_ROOT=%DOTNET_HOME%\%$arch% +set DOTNET_ROOT=%HELIX_CORRELATION_PAYLOAD%\dotnet +set DOTNET_HOME=%DOTNET_ROOT% set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 set DOTNET_MULTILEVEL_LOOKUP=0 set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home set PATH=%DOTNET_ROOT%;!PATH!;%HELIX_CORRELATION_PAYLOAD%\node\bin echo Set path to: %PATH% -echo "Invoking InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET_ROOT%" -powershell.exe -NoProfile -ExecutionPolicy unrestricted -file InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET_ROOT% +echo "Invoking InstallDotNet.ps1 %$arch% %$runtimeVersion% %DOTNET_ROOT%" +powershell.exe -NoProfile -ExecutionPolicy unrestricted -file InstallDotNet.ps1 %$arch% %$runtimeVersion% %DOTNET_ROOT% + +dotnet --list-sdks +dotnet --list-runtimes set exit_code=0 echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources..." dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources -echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..." -dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout% +echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %$target% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..." +dotnet run --project RunTests\RunTests.csproj -- --target %$target% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout% if errorlevel neq 0 ( set exit_code=%errorlevel% ) diff --git a/eng/helix/content/runtests.sh b/eng/helix/content/runtests.sh index a1bf932706..583514535f 100644 --- a/eng/helix/content/runtests.sh +++ b/eng/helix/content/runtests.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash -dotnet_sdk_version="$2" -dotnet_runtime_version="$3" +dotnet_runtime_version="$2" RESET="\033[0m" RED="\033[0;31m" @@ -11,7 +10,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Ensures every invocation of dotnet apps uses the same dotnet.exe # Add $random to path to ensure tests don't expect dotnet to be in a particular path -export DOTNET_ROOT="$DIR/.dotnet$RANDOM" +export DOTNET_ROOT="$HELIX_CORRELATION_PAYLOAD/dotnet" # Ensure dotnet comes first on PATH export PATH="$DOTNET_ROOT:$PATH:$DIR/node/bin" @@ -47,20 +46,6 @@ fi # Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs) chmod +x "dotnet-install.sh"; sync -./dotnet-install.sh --version $dotnet_sdk_version --install-dir "$DOTNET_ROOT" -if [ $? -ne 0 ]; then - sdk_retries=3 - while [ $sdk_retries -gt 0 ]; do - ./dotnet-install.sh --version $dotnet_sdk_version --install-dir "$DOTNET_ROOT" - if [ $? -ne 0 ]; then - let sdk_retries=sdk_retries-1 - echo -e "${YELLOW}Failed to install .NET Core SDK $version. Retries left: $sdk_retries.${RESET}" - else - sdk_retries=0 - fi - done -fi - ./dotnet-install.sh --runtime dotnet --version $dotnet_runtime_version --install-dir "$DOTNET_ROOT" if [ $? -ne 0 ]; then runtime_retries=3 @@ -85,11 +70,14 @@ fi # dontet-install.sh seems to affect the Linux filesystem and causes test flakiness unless we sync the filesystem before running tests sync +$DOTNET_ROOT/dotnet --list-sdks +$DOTNET_ROOT/dotnet --list-runtimes + exit_code=0 echo "Restore: $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..." $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources -echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}..." -$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10} +echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --runtime $2 --queue $3 --arch $4 --quarantined $5 --ef $6 --aspnetruntime $7 --aspnetref $8 --helixTimeout $9..." +$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --runtime $2 --queue $3 --arch $4 --quarantined $5 --ef $6 --aspnetruntime $7 --aspnetref $8 --helixTimeout $9 exit_code=$? echo "Finished tests...exit_code=$exit_code" diff --git a/eng/helix/helix.proj b/eng/helix/helix.proj index 250b2fb9b2..3a179a8866 100644 --- a/eng/helix/helix.proj +++ b/eng/helix/helix.proj @@ -1,5 +1,4 @@ - bin\ $(BaseOutputPath)$(Configuration)\ diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index 0743963a02..ad7b35da23 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -117,8 +117,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj $(TargetFileName) @(HelixPreCommand) @(HelixPostCommand) - call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) - ./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) + call runtests.cmd $(TargetFileName) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) + ./runtests.sh $(TargetFileName) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) $(HelixCommand) $(HelixTimeout) From 95c3bd542629ddd4400622db6d71f09e7f911bd1 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Thu, 23 Jul 2020 08:51:37 +1200 Subject: [PATCH 45/75] Add gRPC testassets projects to solution (#24177) --- AspNetCore.sln | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/AspNetCore.sln b/AspNetCore.sln index 541d020247..4d728cb40f 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1455,6 +1455,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ObjectPool", "ObjectPool", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.ObjectPool", "src\ObjectPool\src\Microsoft.Extensions.ObjectPool.csproj", "{CE5D01C2-6BBD-4F33-A1C4-A1479DA99CAD}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{00B2DD87-7E2A-4460-BE1B-5E18B1062B7F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InteropClient", "src\Grpc\test\testassets\InteropClient\InteropClient.csproj", "{C3A0F425-669F-46A8-893F-CF449A6DAE56}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InteropWebsite", "src\Grpc\test\testassets\InteropWebsite\InteropWebsite.csproj", "{19189670-E206-471D-94F8-7D3D545E5020}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -6889,6 +6895,30 @@ Global {CE5D01C2-6BBD-4F33-A1C4-A1479DA99CAD}.Release|x64.Build.0 = Release|Any CPU {CE5D01C2-6BBD-4F33-A1C4-A1479DA99CAD}.Release|x86.ActiveCfg = Release|Any CPU {CE5D01C2-6BBD-4F33-A1C4-A1479DA99CAD}.Release|x86.Build.0 = Release|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Debug|x64.ActiveCfg = Debug|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Debug|x64.Build.0 = Debug|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Debug|x86.ActiveCfg = Debug|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Debug|x86.Build.0 = Debug|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Release|Any CPU.Build.0 = Release|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Release|x64.ActiveCfg = Release|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Release|x64.Build.0 = Release|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Release|x86.ActiveCfg = Release|Any CPU + {C3A0F425-669F-46A8-893F-CF449A6DAE56}.Release|x86.Build.0 = Release|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Debug|x64.ActiveCfg = Debug|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Debug|x64.Build.0 = Debug|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Debug|x86.ActiveCfg = Debug|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Debug|x86.Build.0 = Debug|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Release|Any CPU.Build.0 = Release|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Release|x64.ActiveCfg = Release|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Release|x64.Build.0 = Release|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Release|x86.ActiveCfg = Release|Any CPU + {19189670-E206-471D-94F8-7D3D545E5020}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -7618,6 +7648,9 @@ Global {8A59AF88-4A82-46ED-977D-D909001F8107} = {6126DCE4-9692-4EE2-B240-C65743572995} {E235DAAD-FE73-469E-B16F-F2B8E872E217} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} {CE5D01C2-6BBD-4F33-A1C4-A1479DA99CAD} = {E235DAAD-FE73-469E-B16F-F2B8E872E217} + {00B2DD87-7E2A-4460-BE1B-5E18B1062B7F} = {E763DA15-8F4E-446C-99B8-309053C75598} + {C3A0F425-669F-46A8-893F-CF449A6DAE56} = {00B2DD87-7E2A-4460-BE1B-5E18B1062B7F} + {19189670-E206-471D-94F8-7D3D545E5020} = {00B2DD87-7E2A-4460-BE1B-5E18B1062B7F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F} From e7b55df6c5bf40121f339c435b1d5cdbbb9a8e73 Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Wed, 22 Jul 2020 15:04:33 -0700 Subject: [PATCH 46/75] Fix blocking call in FindByEmailAsync (#24116) --- src/Identity/EntityFrameworkCore/src/UserStore.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Identity/EntityFrameworkCore/src/UserStore.cs b/src/Identity/EntityFrameworkCore/src/UserStore.cs index 4709916a12..362d046548 100644 --- a/src/Identity/EntityFrameworkCore/src/UserStore.cs +++ b/src/Identity/EntityFrameworkCore/src/UserStore.cs @@ -322,7 +322,6 @@ namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore return UserLogins.SingleOrDefaultAsync(userLogin => userLogin.LoginProvider == loginProvider && userLogin.ProviderKey == providerKey, cancellationToken); } - /// /// Adds the given to the specified . /// @@ -637,7 +636,7 @@ namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore cancellationToken.ThrowIfCancellationRequested(); ThrowIfDisposed(); - return Task.FromResult(Users.Where(u => u.NormalizedEmail == normalizedEmail).SingleOrDefault()); + return Users.SingleOrDefaultAsync(u => u.NormalizedEmail == normalizedEmail); } /// @@ -719,7 +718,6 @@ namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore return Task.CompletedTask; } - /// /// Remove a new user token. /// From a8c39e9cc5dafbb64f29780a0575df46ab9b7714 Mon Sep 17 00:00:00 2001 From: Brennan Date: Wed, 22 Jul 2020 16:02:00 -0700 Subject: [PATCH 47/75] Provide default implementation for IHubFilter.InvokeMethodAsync (#23968) --- src/SignalR/server/Core/src/IHubFilter.cs | 2 +- .../server/SignalR/test/HubFilterTests.cs | 35 ++++++++++++++++++- .../server/SignalR/test/TestFilters.cs | 5 +++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/SignalR/server/Core/src/IHubFilter.cs b/src/SignalR/server/Core/src/IHubFilter.cs index 398d24a253..baf754bb6c 100644 --- a/src/SignalR/server/Core/src/IHubFilter.cs +++ b/src/SignalR/server/Core/src/IHubFilter.cs @@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.SignalR /// The context for the method invocation that holds all the important information about the invoke. /// The next filter to run, and for the final one, the Hub invocation. /// Returns the result of the Hub method invoke. - ValueTask InvokeMethodAsync(HubInvocationContext invocationContext, Func> next); + ValueTask InvokeMethodAsync(HubInvocationContext invocationContext, Func> next) => next(invocationContext); /// /// Allows handling of the method. diff --git a/src/SignalR/server/SignalR/test/HubFilterTests.cs b/src/SignalR/server/SignalR/test/HubFilterTests.cs index 91bc5d835c..5675029eee 100644 --- a/src/SignalR/server/SignalR/test/HubFilterTests.cs +++ b/src/SignalR/server/SignalR/test/HubFilterTests.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Diagnostics; using System.Threading.Tasks; using Microsoft.AspNetCore.Internal; using Microsoft.Extensions.DependencyInjection; @@ -136,6 +135,40 @@ namespace Microsoft.AspNetCore.SignalR.Tests } } + [Fact] + public async Task HubFilterDoesNotNeedToImplementMethods() + { + using (StartVerifiableLog()) + { + var tcsService = new TcsService(); + var serviceProvider = HubConnectionHandlerTestUtils.CreateServiceProvider(services => + { + services.AddSignalR().AddHubOptions(options => + { + options.AddFilter(typeof(EmptyFilter)); + }); + }, LoggerFactory); + + + var connectionHandler = serviceProvider.GetService>(); + + using (var client = new TestClient()) + { + var connectionHandlerTask = await client.ConnectAsync(connectionHandler); + + await client.Connected.OrTimeout(); + + var completion = await client.InvokeAsync(nameof(DynamicTestHub.Echo), "hello"); + Assert.Null(completion.Error); + Assert.Equal("hello", completion.Result); + + client.Dispose(); + + await connectionHandlerTask.OrTimeout(); + } + } + } + [Fact] public async Task MutlipleFilters_MethodsAreCalled() { diff --git a/src/SignalR/server/SignalR/test/TestFilters.cs b/src/SignalR/server/SignalR/test/TestFilters.cs index e32c48284a..50f124e5f3 100644 --- a/src/SignalR/server/SignalR/test/TestFilters.cs +++ b/src/SignalR/server/SignalR/test/TestFilters.cs @@ -233,4 +233,9 @@ namespace Microsoft.AspNetCore.SignalR.Tests return next(context); } } + + public class EmptyFilter : IHubFilter + { + // Purposefully not implementing any methods + } } From 8b7972064f068f76452eff7994263a5e4ee3ca46 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Thu, 23 Jul 2020 06:27:06 +0430 Subject: [PATCH 48/75] Load ClientCertificateMode from config #18660 (#24076) --- .../Core/src/Internal/ConfigurationReader.cs | 28 +++- .../Core/src/KestrelConfigurationLoader.cs | 6 + .../Kestrel/test/ConfigurationReaderTests.cs | 48 ++++++- .../test/KestrelConfigurationLoaderTests.cs | 130 ++++++++++++++++++ 4 files changed, 206 insertions(+), 6 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs b/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs index 2843bb014c..894cd0fa01 100644 --- a/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs +++ b/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Security.Authentication; +using Microsoft.AspNetCore.Server.Kestrel.Https; using Microsoft.Extensions.Configuration; namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal @@ -18,6 +19,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal private const string EndpointDefaultsKey = "EndpointDefaults"; private const string EndpointsKey = "Endpoints"; private const string UrlKey = "Url"; + private const string ClientCertificateModeKey = "ClientCertificateMode"; private readonly IConfiguration _configuration; @@ -50,6 +52,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal // "EndpointDefaults": { // "Protocols": "Http1AndHttp2", // "SslProtocols": [ "Tls11", "Tls12", "Tls13"], + // "ClientCertificateMode" : "NoCertificate" // } private EndpointDefaults ReadEndpointDefaults() { @@ -57,7 +60,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal return new EndpointDefaults { Protocols = ParseProtocols(configSection[ProtocolsKey]), - SslProtocols = ParseSslProcotols(configSection.GetSection(SslProtocolsKey)) + SslProtocols = ParseSslProcotols(configSection.GetSection(SslProtocolsKey)), + ClientCertificateMode = ParseClientCertificateMode(configSection[ClientCertificateModeKey]) }; } @@ -75,7 +79,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal // "Certificate": { // "Path": "testCert.pfx", // "Password": "testPassword" - // } + // }, + // "ClientCertificateMode" : "NoCertificate" // } var url = endpointConfig[UrlKey]; @@ -91,7 +96,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal Protocols = ParseProtocols(endpointConfig[ProtocolsKey]), ConfigSection = endpointConfig, Certificate = new CertificateConfig(endpointConfig.GetSection(CertificateKey)), - SslProtocols = ParseSslProcotols(endpointConfig.GetSection(SslProtocolsKey)) + SslProtocols = ParseSslProcotols(endpointConfig.GetSection(SslProtocolsKey)), + ClientCertificateMode = ParseClientCertificateMode(endpointConfig[ClientCertificateModeKey]) }; endpoints.Add(endpoint); @@ -100,6 +106,16 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal return endpoints; } + private ClientCertificateMode? ParseClientCertificateMode(string clientCertificateMode) + { + if (Enum.TryParse(clientCertificateMode, ignoreCase: true, out var result)) + { + return result; + } + + return null; + } + private static HttpProtocols? ParseProtocols(string protocols) { if (Enum.TryParse(protocols, ignoreCase: true, out var result)) @@ -129,11 +145,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal // "EndpointDefaults": { // "Protocols": "Http1AndHttp2", // "SslProtocols": [ "Tls11", "Tls12", "Tls13"], + // "ClientCertificateMode" : "NoCertificate" // } internal class EndpointDefaults { public HttpProtocols? Protocols { get; set; } public SslProtocols? SslProtocols { get; set; } + public ClientCertificateMode? ClientCertificateMode { get; set; } } // "EndpointName": { @@ -143,7 +161,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal // "Certificate": { // "Path": "testCert.pfx", // "Password": "testPassword" - // } + // }, + // "ClientCertificateMode" : "NoCertificate" // } internal class EndpointConfig { @@ -155,6 +174,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal public HttpProtocols? Protocols { get; set; } public SslProtocols? SslProtocols { get; set; } public CertificateConfig Certificate { get; set; } + public ClientCertificateMode? ClientCertificateMode { get; set; } // Compare config sections because it's accessible to app developers via an Action callback. // We cannot rely entirely on comparing config sections for equality, because KestrelConfigurationLoader.Reload() sets diff --git a/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs b/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs index 04349031e2..86e63ddc6a 100644 --- a/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs +++ b/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs @@ -280,6 +280,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel if (https) { httpsOptions.SslProtocols = ConfigurationReader.EndpointDefaults.SslProtocols ?? SslProtocols.None; + httpsOptions.ClientCertificateMode = ConfigurationReader.EndpointDefaults.ClientCertificateMode ?? ClientCertificateMode.NoCertificate; // Defaults Options.ApplyHttpsDefaults(httpsOptions); @@ -289,6 +290,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel httpsOptions.SslProtocols = endpoint.SslProtocols.Value; } + if (endpoint.ClientCertificateMode.HasValue) + { + httpsOptions.ClientCertificateMode = endpoint.ClientCertificateMode.Value; + } + // Specified httpsOptions.ServerCertificate = LoadCertificate(endpoint.Certificate, endpoint.Name) ?? httpsOptions.ServerCertificate; diff --git a/src/Servers/Kestrel/Kestrel/test/ConfigurationReaderTests.cs b/src/Servers/Kestrel/Kestrel/test/ConfigurationReaderTests.cs index 06345cc462..6b24b86b62 100644 --- a/src/Servers/Kestrel/Kestrel/test/ConfigurationReaderTests.cs +++ b/src/Servers/Kestrel/Kestrel/test/ConfigurationReaderTests.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Security.Authentication; using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.AspNetCore.Server.Kestrel.Core.Internal; +using Microsoft.AspNetCore.Server.Kestrel.Https; using Microsoft.Extensions.Configuration; using Xunit; @@ -92,7 +93,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests [Fact] public void ReadCertificatesSection_ThrowsOnCaseInsensitiveDuplicate() { - var exception = Assert.Throws(() => + var exception = Assert.Throws(() => new ConfigurationBuilder().AddInMemoryCollection(new[] { new KeyValuePair("Certificates:filecert:Password", "certpassword"), @@ -154,10 +155,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests { new KeyValuePair("Endpoints:End1:Url", "http://*:5001"), new KeyValuePair("Endpoints:End2:Url", "https://*:5002"), + new KeyValuePair("Endpoints:End2:ClientCertificateMode", "AllowCertificate"), new KeyValuePair("Endpoints:End3:Url", "https://*:5003"), + new KeyValuePair("Endpoints:End3:ClientCertificateMode", "RequireCertificate"), new KeyValuePair("Endpoints:End3:Certificate:Path", "/path/cert.pfx"), new KeyValuePair("Endpoints:End3:Certificate:Password", "certpassword"), new KeyValuePair("Endpoints:End4:Url", "https://*:5004"), + new KeyValuePair("Endpoints:End4:ClientCertificateMode", "NoCertificate"), new KeyValuePair("Endpoints:End4:Certificate:Subject", "certsubject"), new KeyValuePair("Endpoints:End4:Certificate:Store", "certstore"), new KeyValuePair("Endpoints:End4:Certificate:Location", "cetlocation"), @@ -171,6 +175,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests var end1 = endpoints.First(); Assert.Equal("End1", end1.Name); Assert.Equal("http://*:5001", end1.Url); + Assert.Null(end1.ClientCertificateMode); Assert.NotNull(end1.ConfigSection); Assert.NotNull(end1.Certificate); Assert.False(end1.Certificate.ConfigSection.Exists()); @@ -178,6 +183,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests var end2 = endpoints.Skip(1).First(); Assert.Equal("End2", end2.Name); Assert.Equal("https://*:5002", end2.Url); + Assert.Equal(ClientCertificateMode.AllowCertificate, end2.ClientCertificateMode); Assert.NotNull(end2.ConfigSection); Assert.NotNull(end2.Certificate); Assert.False(end2.Certificate.ConfigSection.Exists()); @@ -185,6 +191,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests var end3 = endpoints.Skip(2).First(); Assert.Equal("End3", end3.Name); Assert.Equal("https://*:5003", end3.Url); + Assert.Equal(ClientCertificateMode.RequireCertificate, end3.ClientCertificateMode); Assert.NotNull(end3.ConfigSection); Assert.NotNull(end3.Certificate); Assert.True(end3.Certificate.ConfigSection.Exists()); @@ -197,6 +204,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests var end4 = endpoints.Skip(3).First(); Assert.Equal("End4", end4.Name); Assert.Equal("https://*:5004", end4.Url); + Assert.Equal(ClientCertificateMode.NoCertificate, end4.ClientCertificateMode); Assert.NotNull(end4.ConfigSection); Assert.NotNull(end4.Certificate); Assert.True(end4.Certificate.ConfigSection.Exists()); @@ -235,7 +243,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests var reader = new ConfigurationReader(config); var endpoint = reader.Endpoints.First(); - Assert.Equal(SslProtocols.Tls11|SslProtocols.Tls12, endpoint.SslProtocols); + Assert.Equal(SslProtocols.Tls11 | SslProtocols.Tls12, endpoint.SslProtocols); } [Fact] @@ -287,5 +295,41 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests var endpoint = reader.EndpointDefaults; Assert.Null(endpoint.SslProtocols); } + + [Fact] + public void ReadEndpointWithNoClientCertificateModeSettings_ReturnsNull() + { + var config = new ConfigurationBuilder().AddInMemoryCollection(new[] + { + new KeyValuePair("Endpoints:End1:Url", "http://*:5001"), + }).Build(); + var reader = new ConfigurationReader(config); + + var endpoint = reader.Endpoints.First(); + Assert.Null(endpoint.ClientCertificateMode); + } + + [Fact] + public void ReadEndpointDefaultsWithClientCertificateModeSet_ReturnsCorrectValue() + { + var config = new ConfigurationBuilder().AddInMemoryCollection(new[] + { + new KeyValuePair("EndpointDefaults:ClientCertificateMode", "AllowCertificate"), + }).Build(); + var reader = new ConfigurationReader(config); + + var endpoint = reader.EndpointDefaults; + Assert.Equal(ClientCertificateMode.AllowCertificate, endpoint.ClientCertificateMode); + } + + [Fact] + public void ReadEndpointDefaultsWithNoAllowCertificateSettings_ReturnsCorrectValue() + { + var config = new ConfigurationBuilder().Build(); + var reader = new ConfigurationReader(config); + + var endpoint = reader.EndpointDefaults; + Assert.Null(endpoint.ClientCertificateMode); + } } } diff --git a/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationLoaderTests.cs b/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationLoaderTests.cs index 5053b3cffb..2e71cdb223 100644 --- a/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationLoaderTests.cs +++ b/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationLoaderTests.cs @@ -704,6 +704,136 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests Assert.True(ran1); } + [Fact] + public void EndpointConfigureSection_CanSetClientCertificateMode() + { + var serverOptions = CreateServerOptions(); + var ranDefault = false; + + serverOptions.ConfigureHttpsDefaults(opt => + { + opt.ServerCertificate = TestResources.GetTestCertificate(); + + // Kestrel default + Assert.Equal(ClientCertificateMode.NoCertificate, opt.ClientCertificateMode); + ranDefault = true; + }); + + var ran1 = false; + var ran2 = false; + var config = new ConfigurationBuilder().AddInMemoryCollection(new[] + { + new KeyValuePair("Endpoints:End1:ClientCertificateMode", "AllowCertificate"), + new KeyValuePair("Endpoints:End1:Url", "https://*:5001"), + }).Build(); + serverOptions.Configure(config) + .Endpoint("End1", opt => + { + Assert.Equal(ClientCertificateMode.AllowCertificate, opt.HttpsOptions.ClientCertificateMode); + ran1 = true; + }) + .Load(); + serverOptions.ListenAnyIP(0, opt => + { + opt.UseHttps(httpsOptions => + { + // Kestrel default. + Assert.Equal(ClientCertificateMode.NoCertificate, httpsOptions.ClientCertificateMode); + ran2 = true; + }); + }); + + Assert.True(ranDefault); + Assert.True(ran1); + Assert.True(ran2); + } + + [Fact] + public void EndpointConfigureSection_CanOverrideClientCertificateModeFromConfigureHttpsDefaults() + { + var serverOptions = CreateServerOptions(); + + serverOptions.ConfigureHttpsDefaults(opt => + { + opt.ServerCertificate = TestResources.GetTestCertificate(); + opt.ClientCertificateMode = ClientCertificateMode.RequireCertificate; + }); + + var ran1 = false; + var config = new ConfigurationBuilder().AddInMemoryCollection(new[] + { + new KeyValuePair("Endpoints:End1:ClientCertificateMode", "AllowCertificate"), + new KeyValuePair("Endpoints:End1:Url", "https://*:5001"), + }).Build(); + serverOptions.Configure(config) + .Endpoint("End1", opt => + { + Assert.Equal(ClientCertificateMode.AllowCertificate, opt.HttpsOptions.ClientCertificateMode); + ran1 = true; + }) + .Load(); + + Assert.True(ran1); + } + + [Fact] + public void DefaultEndpointConfigureSection_CanSetClientCertificateMode() + { + var serverOptions = CreateServerOptions(); + + serverOptions.ConfigureHttpsDefaults(opt => + { + opt.ServerCertificate = TestResources.GetTestCertificate(); + }); + + var ran1 = false; + var config = new ConfigurationBuilder().AddInMemoryCollection(new[] + { + new KeyValuePair("EndpointDefaults:ClientCertificateMode", "AllowCertificate"), + new KeyValuePair("Endpoints:End1:Url", "https://*:5001"), + }).Build(); + serverOptions.Configure(config) + .Endpoint("End1", opt => + { + Assert.Equal(ClientCertificateMode.AllowCertificate, opt.HttpsOptions.ClientCertificateMode); + ran1 = true; + }) + .Load(); + + Assert.True(ran1); + } + + + [Fact] + public void DefaultEndpointConfigureSection_ConfigureHttpsDefaultsCanOverrideClientCertificateMode() + { + var serverOptions = CreateServerOptions(); + + serverOptions.ConfigureHttpsDefaults(opt => + { + opt.ServerCertificate = TestResources.GetTestCertificate(); + + Assert.Equal(ClientCertificateMode.AllowCertificate, opt.ClientCertificateMode); + opt.ClientCertificateMode = ClientCertificateMode.RequireCertificate; + }); + + var ran1 = false; + var config = new ConfigurationBuilder().AddInMemoryCollection(new[] + { + new KeyValuePair("EndpointDefaults:ClientCertificateMode", "AllowCertificate"), + new KeyValuePair("Endpoints:End1:Url", "https://*:5001"), + }).Build(); + serverOptions.Configure(config) + .Endpoint("End1", opt => + { + Assert.Equal(ClientCertificateMode.RequireCertificate, opt.HttpsOptions.ClientCertificateMode); + ran1 = true; + }) + .Load(); + + Assert.True(ran1); + } + [Fact] public void Reload_IdentifiesEndpointsToStartAndStop() { From c27dcc4b39d8345c255cdb7e12a68225f36ded3b Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Thu, 23 Jul 2020 14:57:33 -0700 Subject: [PATCH 49/75] Move DataProtection tests to HostBuilder (#24254) --- src/DataProtection/DataProtection.slnf | 23 ++++++++++++++----- .../DataProtection/test/HostingTests.cs | 6 ++--- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/DataProtection/DataProtection.slnf b/src/DataProtection/DataProtection.slnf index 6ecd6ec09c..ec0ec1e358 100644 --- a/src/DataProtection/DataProtection.slnf +++ b/src/DataProtection/DataProtection.slnf @@ -1,7 +1,7 @@ -{ +{ "solution": { "path": "..\\..\\AspNetCore.sln", - "projects" : [ + "projects": [ "src\\DataProtection\\Abstractions\\src\\Microsoft.AspNetCore.DataProtection.Abstractions.csproj", "src\\DataProtection\\Abstractions\\test\\Microsoft.AspNetCore.DataProtection.Abstractions.Tests.csproj", "src\\DataProtection\\Cryptography.Internal\\src\\Microsoft.AspNetCore.Cryptography.Internal.csproj", @@ -10,17 +10,28 @@ "src\\DataProtection\\Cryptography.KeyDerivation\\test\\Microsoft.AspNetCore.Cryptography.KeyDerivation.Tests.csproj", "src\\DataProtection\\DataProtection\\src\\Microsoft.AspNetCore.DataProtection.csproj", "src\\DataProtection\\DataProtection\\test\\Microsoft.AspNetCore.DataProtection.Tests.csproj", + "src\\DataProtection\\EntityFrameworkCore\\src\\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj", + "src\\DataProtection\\EntityFrameworkCore\\test\\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj", "src\\DataProtection\\Extensions\\src\\Microsoft.AspNetCore.DataProtection.Extensions.csproj", "src\\DataProtection\\Extensions\\test\\Microsoft.AspNetCore.DataProtection.Extensions.Tests.csproj", "src\\DataProtection\\StackExchangeRedis\\src\\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj", "src\\DataProtection\\StackExchangeRedis\\test\\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj", "src\\DataProtection\\samples\\CustomEncryptorSample\\CustomEncryptorSample.csproj", + "src\\DataProtection\\samples\\EntityFrameworkCoreSample\\EntityFrameworkCoreSample.csproj", "src\\DataProtection\\samples\\KeyManagementSample\\KeyManagementSample.csproj", "src\\DataProtection\\samples\\NonDISample\\NonDISample.csproj", "src\\DataProtection\\samples\\Redis\\Redis.csproj", - "src\\DataProtection\\EntityFrameworkCore\\src\\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj", - "src\\DataProtection\\EntityFrameworkCore\\test\\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj", - "src\\DataProtection\\samples\\EntityFrameworkCoreSample\\EntityFrameworkCoreSample.csproj" + "src\\Hosting\\Abstractions\\src\\Microsoft.AspNetCore.Hosting.Abstractions.csproj", + "src\\Hosting\\Hosting\\src\\Microsoft.AspNetCore.Hosting.csproj", + "src\\Hosting\\Server.Abstractions\\src\\Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj", + "src\\Http\\Headers\\src\\Microsoft.Net.Http.Headers.csproj", + "src\\Http\\Http.Abstractions\\src\\Microsoft.AspNetCore.Http.Abstractions.csproj", + "src\\Http\\Http.Extensions\\src\\Microsoft.AspNetCore.Http.Extensions.csproj", + "src\\Http\\Http.Features\\src\\Microsoft.AspNetCore.Http.Features.csproj", + "src\\Http\\Http\\src\\Microsoft.AspNetCore.Http.csproj", + "src\\Http\\WebUtilities\\src\\Microsoft.AspNetCore.WebUtilities.csproj", + "src\\ObjectPool\\src\\Microsoft.Extensions.ObjectPool.csproj", + "src\\Testing\\src\\Microsoft.AspNetCore.Testing.csproj" ] } -} +} \ No newline at end of file diff --git a/src/DataProtection/DataProtection/test/HostingTests.cs b/src/DataProtection/DataProtection/test/HostingTests.cs index c687715a4c..a01be3afd0 100644 --- a/src/DataProtection/DataProtection/test/HostingTests.cs +++ b/src/DataProtection/DataProtection/test/HostingTests.cs @@ -82,13 +82,13 @@ namespace Microsoft.AspNetCore.DataProtection.Test .Throws(new NotSupportedException("This mock doesn't actually work, but shouldn't kill the server")) .Verifiable(); - var builder = new WebHostBuilder() - .UseStartup() + var builder = new HostBuilder() .ConfigureServices(s => s.AddDataProtection() .Services .Replace(ServiceDescriptor.Singleton(mockKeyRing.Object)) - .AddSingleton(Mock.Of())); + .AddSingleton(Mock.Of())) + .ConfigureWebHost(b => b.UseStartup()); using (var host = builder.Build()) { From d9049eca9ced2ea65e21c137ccbff38c51351062 Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Thu, 23 Jul 2020 15:47:36 -0700 Subject: [PATCH 50/75] Revert "Try using helix sdk support directly again (#23585)" (#24250) This reverts commit 059fe39ae094a5d7076ad3583ef4bd70fa6aed0c. --- eng/helix/content/InstallDotNet.ps1 | 13 ++++++-- eng/helix/content/RunTests/RunTestsOptions.cs | 7 ++++ eng/helix/content/runtests.cmd | 33 +++++++++---------- eng/helix/content/runtests.sh | 26 +++++++++++---- eng/helix/helix.proj | 5 ++- eng/targets/Helix.targets | 4 +-- 6 files changed, 56 insertions(+), 32 deletions(-) diff --git a/eng/helix/content/InstallDotNet.ps1 b/eng/helix/content/InstallDotNet.ps1 index 080a14bd7d..7e87866433 100644 --- a/eng/helix/content/InstallDotNet.ps1 +++ b/eng/helix/content/InstallDotNet.ps1 @@ -1,10 +1,12 @@ <# .SYNOPSIS - Installs dotnet runtime using https://dot.net/v1/dotnet-install.ps1 + Installs dotnet sdk and runtime using https://dot.net/v1/dotnet-install.ps1 .DESCRIPTION - Installs dotnet runtime using https://dot.net/v1/dotnet-install.ps1 + Installs dotnet sdk and runtime using https://dot.net/v1/dotnet-install.ps1 .PARAMETER arch The architecture to install. +.PARAMETER sdkVersion + The sdk version to install .PARAMETER runtimeVersion The runtime version to install .PARAMETER installDir @@ -14,6 +16,9 @@ param( [Parameter(Mandatory = $true)] $arch, + [Parameter(Mandatory = $true)] + $sdkVersion, + [Parameter(Mandatory = $true)] $runtimeVersion, @@ -23,6 +28,8 @@ param( & $PSScriptRoot\Download.ps1 "https://dot.net/v1/dotnet-install.ps1" $PSScriptRoot\dotnet-install.ps1 Write-Host "Download of dotnet-install.ps1 complete..." +Write-Host "Installing SDK...& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Version $sdkVersion -InstallDir $installDir" +Invoke-Expression "& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Version $sdkVersion -InstallDir $installDir" Write-Host "Installing Runtime...& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Runtime dotnet -Version $runtimeVersion -InstallDir $installDir" Invoke-Expression "& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Runtime dotnet -Version $runtimeVersion -InstallDir $installDir" -Write-Host "InstallDotNet.ps1 complete..." +Write-Host "InstallDotNet.ps1 complete..." \ No newline at end of file diff --git a/eng/helix/content/RunTests/RunTestsOptions.cs b/eng/helix/content/RunTests/RunTestsOptions.cs index e62adef6d5..9e076c9701 100644 --- a/eng/helix/content/RunTests/RunTestsOptions.cs +++ b/eng/helix/content/RunTests/RunTestsOptions.cs @@ -21,6 +21,11 @@ namespace RunTests description: "The test dll to run") { Argument = new Argument(), Required = true }, + new Option( + aliases: new string[] { "--sdk" }, + description: "The version of the sdk being used") + { Argument = new Argument(), Required = true }, + new Option( aliases: new string[] { "--runtime" }, description: "The version of the runtime being used") @@ -65,6 +70,7 @@ namespace RunTests var parseResult = command.Parse(args); var options = new RunTestsOptions(); options.Target = parseResult.ValueForOption("--target"); + options.SdkVersion = parseResult.ValueForOption("--sdk"); options.RuntimeVersion = parseResult.ValueForOption("--runtime"); options.HelixQueue = parseResult.ValueForOption("--queue"); options.Architecture = parseResult.ValueForOption("--arch"); @@ -80,6 +86,7 @@ namespace RunTests } public string Target { get; set;} + public string SdkVersion { get; set;} public string RuntimeVersion { get; set;} public string AspNetRuntime { get; set;} public string AspNetRef { get; set;} diff --git a/eng/helix/content/runtests.cmd b/eng/helix/content/runtests.cmd index 4b3c4dfea6..c1b27b1c89 100644 --- a/eng/helix/content/runtests.cmd +++ b/eng/helix/content/runtests.cmd @@ -4,36 +4,35 @@ setlocal enabledelayedexpansion REM Use '$' as a variable name prefix to avoid MSBuild variable collisions with these variables set $target=%1 -set $runtimeVersion=%2 -set $queue=%3 -set $arch=%4 -set $quarantined=%5 -set $ef=%6 -set $aspnetruntime=%7 -set $aspnetref=%8 -set $helixTimeout=%9 +set $sdkVersion=%2 +set $runtimeVersion=%3 +set $queue=%4 +set $arch=%5 +set $quarantined=%6 +set $ef=%7 +set $aspnetruntime=%8 +set $aspnetref=%9 REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more +shift +set $helixTimeout=%9 -set DOTNET_ROOT=%HELIX_CORRELATION_PAYLOAD%\dotnet -set DOTNET_HOME=%DOTNET_ROOT% +set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk +set DOTNET_ROOT=%DOTNET_HOME%\%$arch% set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 set DOTNET_MULTILEVEL_LOOKUP=0 set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home set PATH=%DOTNET_ROOT%;!PATH!;%HELIX_CORRELATION_PAYLOAD%\node\bin echo Set path to: %PATH% -echo "Invoking InstallDotNet.ps1 %$arch% %$runtimeVersion% %DOTNET_ROOT%" -powershell.exe -NoProfile -ExecutionPolicy unrestricted -file InstallDotNet.ps1 %$arch% %$runtimeVersion% %DOTNET_ROOT% - -dotnet --list-sdks -dotnet --list-runtimes +echo "Invoking InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET_ROOT%" +powershell.exe -NoProfile -ExecutionPolicy unrestricted -file InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET_ROOT% set exit_code=0 echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources..." dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources -echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %$target% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..." -dotnet run --project RunTests\RunTests.csproj -- --target %$target% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout% +echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..." +dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout% if errorlevel neq 0 ( set exit_code=%errorlevel% ) diff --git a/eng/helix/content/runtests.sh b/eng/helix/content/runtests.sh index 583514535f..a1bf932706 100644 --- a/eng/helix/content/runtests.sh +++ b/eng/helix/content/runtests.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -dotnet_runtime_version="$2" +dotnet_sdk_version="$2" +dotnet_runtime_version="$3" RESET="\033[0m" RED="\033[0;31m" @@ -10,7 +11,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Ensures every invocation of dotnet apps uses the same dotnet.exe # Add $random to path to ensure tests don't expect dotnet to be in a particular path -export DOTNET_ROOT="$HELIX_CORRELATION_PAYLOAD/dotnet" +export DOTNET_ROOT="$DIR/.dotnet$RANDOM" # Ensure dotnet comes first on PATH export PATH="$DOTNET_ROOT:$PATH:$DIR/node/bin" @@ -46,6 +47,20 @@ fi # Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs) chmod +x "dotnet-install.sh"; sync +./dotnet-install.sh --version $dotnet_sdk_version --install-dir "$DOTNET_ROOT" +if [ $? -ne 0 ]; then + sdk_retries=3 + while [ $sdk_retries -gt 0 ]; do + ./dotnet-install.sh --version $dotnet_sdk_version --install-dir "$DOTNET_ROOT" + if [ $? -ne 0 ]; then + let sdk_retries=sdk_retries-1 + echo -e "${YELLOW}Failed to install .NET Core SDK $version. Retries left: $sdk_retries.${RESET}" + else + sdk_retries=0 + fi + done +fi + ./dotnet-install.sh --runtime dotnet --version $dotnet_runtime_version --install-dir "$DOTNET_ROOT" if [ $? -ne 0 ]; then runtime_retries=3 @@ -70,14 +85,11 @@ fi # dontet-install.sh seems to affect the Linux filesystem and causes test flakiness unless we sync the filesystem before running tests sync -$DOTNET_ROOT/dotnet --list-sdks -$DOTNET_ROOT/dotnet --list-runtimes - exit_code=0 echo "Restore: $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..." $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources -echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --runtime $2 --queue $3 --arch $4 --quarantined $5 --ef $6 --aspnetruntime $7 --aspnetref $8 --helixTimeout $9..." -$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --runtime $2 --queue $3 --arch $4 --quarantined $5 --ef $6 --aspnetruntime $7 --aspnetref $8 --helixTimeout $9 +echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}..." +$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10} exit_code=$? echo "Finished tests...exit_code=$exit_code" diff --git a/eng/helix/helix.proj b/eng/helix/helix.proj index 3a179a8866..250b2fb9b2 100644 --- a/eng/helix/helix.proj +++ b/eng/helix/helix.proj @@ -1,4 +1,5 @@ + bin\ $(BaseOutputPath)$(Configuration)\ diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index ad7b35da23..0743963a02 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -117,8 +117,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj $(TargetFileName) @(HelixPreCommand) @(HelixPostCommand) - call runtests.cmd $(TargetFileName) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) - ./runtests.sh $(TargetFileName) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) + call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) + ./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout) $(HelixCommand) $(HelixTimeout) From 4485f586aa1d10f00f3daa705bf94786f35239e5 Mon Sep 17 00:00:00 2001 From: Brennan Date: Thu, 23 Jul 2020 18:49:44 -0700 Subject: [PATCH 51/75] Update signalr-daily-tests.yml (#24266) --- .azure/pipelines/signalr-daily-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.azure/pipelines/signalr-daily-tests.yml b/.azure/pipelines/signalr-daily-tests.yml index a60958a0ac..a53c08e9f9 100644 --- a/.azure/pipelines/signalr-daily-tests.yml +++ b/.azure/pipelines/signalr-daily-tests.yml @@ -4,6 +4,11 @@ # Daily Tests for ASP.NET Core SignalR # These use Sauce Labs resources, hence they run daily rather than per-commit. +variables: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: DotNet-MSRC-Storage + - group: AzureDevOps-Artifact-Feeds-Pats + # The only Daily Tests we have run in Sauce Labs and only need to run on one machine (because they just trigger SauceLabs) # Hence we use the 'default-build.yml' template because it represents a single phase jobs: From 4d45b1803b9412ca37d45cf3d6fb63a19c0056f4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 23 Jul 2020 19:03:01 -0700 Subject: [PATCH 52/75] [master] Update dependencies from dotnet/efcore (#24206) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update dependencies from https://github.com/dotnet/efcore build 20200720.1 Microsoft.EntityFrameworkCore.Tools , Microsoft.EntityFrameworkCore.SqlServer , dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.InMemory From Version 5.0.0-rc.1.20367.2 -> To Version 5.0.0-rc.1.20370.1 … * Update dependencies from https://github.com/dotnet/efcore build 20200722.13 Microsoft.EntityFrameworkCore.Tools , Microsoft.EntityFrameworkCore.SqlServer , dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.InMemory From Version 5.0.0-rc.1.20367.2 -> To Version 5.0.0-rc.1.20372.13 * Postponing roslyn update Co-authored-by: dotnet-maestro[bot] Co-authored-by: Sébastien Ros --- NuGet.config | 3 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/NuGet.config b/NuGet.config index 358177f770..94e12ce1b4 100644 --- a/NuGet.config +++ b/NuGet.config @@ -2,9 +2,6 @@ - - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c5c24dd78c..6a2e61c561 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,33 +13,33 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 1aac0aec91bb6e5baa682450b7157331f2226173 + 59734ea22f29d22f8d0c1673c59a99c54ec4e78d - + https://github.com/dotnet/efcore - 1aac0aec91bb6e5baa682450b7157331f2226173 + 59734ea22f29d22f8d0c1673c59a99c54ec4e78d - + https://github.com/dotnet/efcore - 1aac0aec91bb6e5baa682450b7157331f2226173 + 59734ea22f29d22f8d0c1673c59a99c54ec4e78d - + https://github.com/dotnet/efcore - 1aac0aec91bb6e5baa682450b7157331f2226173 + 59734ea22f29d22f8d0c1673c59a99c54ec4e78d - + https://github.com/dotnet/efcore - 1aac0aec91bb6e5baa682450b7157331f2226173 + 59734ea22f29d22f8d0c1673c59a99c54ec4e78d - + https://github.com/dotnet/efcore - 1aac0aec91bb6e5baa682450b7157331f2226173 + 59734ea22f29d22f8d0c1673c59a99c54ec4e78d - + https://github.com/dotnet/efcore - 1aac0aec91bb6e5baa682450b7157331f2226173 + 59734ea22f29d22f8d0c1673c59a99c54ec4e78d https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 69ebdd6225..00896bd2bc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -133,13 +133,13 @@ 3.2.0 - 5.0.0-rc.1.20367.2 - 5.0.0-rc.1.20367.2 - 5.0.0-rc.1.20367.2 - 5.0.0-rc.1.20367.2 - 5.0.0-rc.1.20367.2 - 5.0.0-rc.1.20367.2 - 5.0.0-rc.1.20367.2 + 5.0.0-rc.1.20372.13 + 5.0.0-rc.1.20372.13 + 5.0.0-rc.1.20372.13 + 5.0.0-rc.1.20372.13 + 5.0.0-rc.1.20372.13 + 5.0.0-rc.1.20372.13 + 5.0.0-rc.1.20372.13 + + + + + + + + + + + + + + + <_ScopedCssExtension>.rz.scp.css + $(ResolveStaticWebAssetsInputsDependsOn);_CollectAllScopedCssAssets;AddScopedCssBundle + $(ResolveCurrentProjectStaticWebAssetsInputsDependsOn);_AddGeneratedScopedCssFiles + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ScopedCssIntermediatePath>$([System.IO.Path]::GetFullPath($(IntermediateOutputPath)scopedcss\)) + + + + <_ScopedCss Condition="'%(_ScopedCss.Identity)' != ''"> + $(_ScopedCssIntermediatePath)%(RelativeDir)%(RecursiveDir)%(FileName)$(_ScopedCssExtension) + + <_ScopedCssOutputs Include="%(_ScopedCss.OutputFile)" /> + + + + + + + + + + + + + + + + + + + <_ScopedCssOutputPath>$(_ScopedCssIntermediatePath)_framework\scoped.styles.css + <_ScopedCssOutputFullPath>$([System.IO.Path]::Combine('$(MSBuildProjectFileDirectory)', '$(_ScopedCssIntermediatePath)_framework\scoped.styles.css')) + + + + + + + + $(PackageId) + $(_ScopedCssIntermediatePath) + $(StaticWebAssetBasePath) + _framework/scoped.styles.css + + <_ExternalStaticWebAsset Include="$(_ScopedCssOutputPath)" Condition="@(_AllScopedCss) != ''"> + generated + $(PackageId) + $(_ScopedCssIntermediatePath) + $(StaticWebAssetBasePath) + _framework/scoped.styles.css + + + + + + + + + + + + + + + + + _content/$(PackageId) + + + + + $(PackageId) + $(IntermediateOutputPath)scopedcss\ + $(StaticWebAssetBasePath) + $([MSBuild]::MakeRelative('$(_ScopedCssIntermediatePath)','%(_ScopedCss.OutputFile)')) + + + + + + + + + + + + + + + + + + + + <_ExternalPublishStaticWebAsset Include="$(_ScopedCssOutputFullPath)" ExcludeFromSingleFile="true"> + generated + $(PackageId) + $(_ScopedCssIntermediatePath) + $(StaticWebAssetBasePath) + PreserveNewest + $([MSBuild]::MakeRelative('$(MSBuildProjectDirectory)',$([MSBuild]::NormalizePath('wwwroot/$(StaticWebAssetBasePath)/_framework/scoped.styles.css')))) + + + + + + + <_CurrentProjectStaticWebAsset Remove="$(_ScopedCssOutputFullPath)" /> + + + + + + diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.props b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.props index 19e380c3a4..3bc7a24d9e 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.props +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.props @@ -36,6 +36,11 @@ Copyright (c) .NET Foundation. All rights reserved. --> true + + true + $(_Targeting30OrNewerRazorLangVersion) + + + $(_Targeting30OrNewerRazorLangVersion) @@ -353,6 +356,8 @@ Copyright (c) .NET Foundation. All rights reserved. + + diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/test/GenerateStaticWebAssetsPropsFileTest.cs b/src/Razor/Microsoft.NET.Sdk.Razor/test/GenerateStaticWebAssetsPropsFileTest.cs index 2525e15626..48a70dca61 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/test/GenerateStaticWebAssetsPropsFileTest.cs +++ b/src/Razor/Microsoft.NET.Sdk.Razor/test/GenerateStaticWebAssetsPropsFileTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; @@ -269,7 +269,7 @@ namespace Microsoft.AspNetCore.Razor.Tasks Assert.Equal(expectedError, message); } - [Fact] + [Fact(Skip = "https://github.com/dotnet/aspnetcore/issues/24257")] public void Fails_WhenStaticWebAsset_HaveDifferentContentRoot() { // Arrange diff --git a/src/Razor/test/testassets/ClassLibrary/Components/App.razor b/src/Razor/test/testassets/ClassLibrary/Components/App.razor new file mode 100644 index 0000000000..6ab209770e --- /dev/null +++ b/src/Razor/test/testassets/ClassLibrary/Components/App.razor @@ -0,0 +1 @@ +

Hello from razor

diff --git a/src/Razor/test/testassets/ClassLibrary/Components/App.razor.css b/src/Razor/test/testassets/ClassLibrary/Components/App.razor.css new file mode 100644 index 0000000000..8bf950df47 --- /dev/null +++ b/src/Razor/test/testassets/ClassLibrary/Components/App.razor.css @@ -0,0 +1,3 @@ +p { + font-size: bold; +} diff --git a/src/Razor/test/testassets/ComponentApp/Components/Pages/Counter.razor.css b/src/Razor/test/testassets/ComponentApp/Components/Pages/Counter.razor.css new file mode 100644 index 0000000000..6fd5c7d6df --- /dev/null +++ b/src/Razor/test/testassets/ComponentApp/Components/Pages/Counter.razor.css @@ -0,0 +1,3 @@ +button { + font-size: 16px; +} diff --git a/src/Razor/test/testassets/ComponentApp/Components/Pages/Index.razor.css b/src/Razor/test/testassets/ComponentApp/Components/Pages/Index.razor.css new file mode 100644 index 0000000000..ae982b6049 --- /dev/null +++ b/src/Razor/test/testassets/ComponentApp/Components/Pages/Index.razor.css @@ -0,0 +1,3 @@ +h1 { + font-weight: bold; +} diff --git a/src/Razor/test/testassets/PackageLibraryDirectDependency/Components/App.razor b/src/Razor/test/testassets/PackageLibraryDirectDependency/Components/App.razor new file mode 100644 index 0000000000..6ab209770e --- /dev/null +++ b/src/Razor/test/testassets/PackageLibraryDirectDependency/Components/App.razor @@ -0,0 +1 @@ +

Hello from razor

diff --git a/src/Razor/test/testassets/PackageLibraryDirectDependency/Components/App.razor.css b/src/Razor/test/testassets/PackageLibraryDirectDependency/Components/App.razor.css new file mode 100644 index 0000000000..8bf950df47 --- /dev/null +++ b/src/Razor/test/testassets/PackageLibraryDirectDependency/Components/App.razor.css @@ -0,0 +1,3 @@ +p { + font-size: bold; +} From e23f83d5573cafd896e92ab2e3eea153379c8ed1 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Fri, 24 Jul 2020 08:05:59 -0700 Subject: [PATCH 54/75] Remove duplicate projects from AspNetCore.sln (#24263) --- AspNetCore.sln | 93 -------------------------------------------------- 1 file changed, 93 deletions(-) diff --git a/AspNetCore.sln b/AspNetCore.sln index 0d5d197437..4d728cb40f 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1427,20 +1427,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Compon EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.Web.Extensions.Tests", "src\Components\Web.Extensions\test\Microsoft.AspNetCore.Components.Web.Extensions.Tests.csproj", "{157605CB-5170-4C1A-980F-4BAE42DB60DE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{2531F00A-54EB-4074-9C0B-9AF9FB3679DC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BasicTestApp", "src\Components\test\testassets\BasicTestApp\BasicTestApp.csproj", "{85D67E40-4B11-48ED-8C43-34590A1FB9ED}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LazyTestContentPackage", "src\Components\test\testassets\LazyTestContentPackage\LazyTestContentPackage.csproj", "{C0EF53A5-5A94-4849-86B0-2297EA08D649}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ComponentsApp.App", "src\Components\test\testassets\ComponentsApp.App\ComponentsApp.App.csproj", "{4FDD820F-8397-41B7-956E-F257DD044BD8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ComponentsApp.Server", "src\Components\test\testassets\ComponentsApp.Server\ComponentsApp.Server.csproj", "{CA7C7A53-446F-453A-A57B-78BB1443B8A8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestContentPackage", "src\Components\test\testassets\TestContentPackage\TestContentPackage.csproj", "{B32C5882-2313-40D0-A003-2FF33724CFE6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Components.TestServer", "src\Components\test\testassets\TestServer\Components.TestServer.csproj", "{26F88A06-319C-43F3-9FD9-8BC2D29F8C00}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sdk", "Sdk", "{FED4267E-E5E4-49C5-98DB-8B3F203596EE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.NET.Sdk.BlazorWebAssembly", "src\Components\WebAssembly\Sdk\src\Microsoft.NET.Sdk.BlazorWebAssembly.csproj", "{6B2734BF-C61D-4889-ABBF-456A4075D59B}" @@ -6777,78 +6763,6 @@ Global {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x64.Build.0 = Release|Any CPU {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x86.ActiveCfg = Release|Any CPU {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x86.Build.0 = Release|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x64.ActiveCfg = Debug|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x64.Build.0 = Debug|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x86.ActiveCfg = Debug|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x86.Build.0 = Debug|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|Any CPU.Build.0 = Release|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x64.ActiveCfg = Release|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x64.Build.0 = Release|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x86.ActiveCfg = Release|Any CPU - {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x86.Build.0 = Release|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x64.ActiveCfg = Debug|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x64.Build.0 = Debug|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x86.ActiveCfg = Debug|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x86.Build.0 = Debug|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|Any CPU.Build.0 = Release|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x64.ActiveCfg = Release|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x64.Build.0 = Release|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x86.ActiveCfg = Release|Any CPU - {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x86.Build.0 = Release|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x64.ActiveCfg = Debug|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x64.Build.0 = Debug|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x86.ActiveCfg = Debug|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x86.Build.0 = Debug|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|Any CPU.Build.0 = Release|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x64.ActiveCfg = Release|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x64.Build.0 = Release|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x86.ActiveCfg = Release|Any CPU - {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x86.Build.0 = Release|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x64.ActiveCfg = Debug|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x64.Build.0 = Debug|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x86.ActiveCfg = Debug|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x86.Build.0 = Debug|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|Any CPU.Build.0 = Release|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x64.ActiveCfg = Release|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x64.Build.0 = Release|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x86.ActiveCfg = Release|Any CPU - {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x86.Build.0 = Release|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x64.ActiveCfg = Debug|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x64.Build.0 = Debug|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x86.ActiveCfg = Debug|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x86.Build.0 = Debug|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|Any CPU.Build.0 = Release|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x64.ActiveCfg = Release|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x64.Build.0 = Release|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x86.ActiveCfg = Release|Any CPU - {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x86.Build.0 = Release|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|Any CPU.Build.0 = Debug|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x64.ActiveCfg = Debug|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x64.Build.0 = Debug|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x86.ActiveCfg = Debug|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x86.Build.0 = Debug|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|Any CPU.ActiveCfg = Release|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|Any CPU.Build.0 = Release|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x64.ActiveCfg = Release|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x64.Build.0 = Release|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x86.ActiveCfg = Release|Any CPU - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x86.Build.0 = Release|Any CPU {6B2734BF-C61D-4889-ABBF-456A4075D59B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6B2734BF-C61D-4889-ABBF-456A4075D59B}.Debug|Any CPU.Build.0 = Debug|Any CPU {6B2734BF-C61D-4889-ABBF-456A4075D59B}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -7720,13 +7634,6 @@ Global {F71FE795-9923-461B-9809-BB1821A276D0} = {60D51C98-2CC0-40DF-B338-44154EFEE2FF} {8294A74F-7DAA-4B69-BC56-7634D93C9693} = {F71FE795-9923-461B-9809-BB1821A276D0} {157605CB-5170-4C1A-980F-4BAE42DB60DE} = {F71FE795-9923-461B-9809-BB1821A276D0} - {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} = {0508E463-0269-40C9-B5C2-3B600FB2A28B} - {85D67E40-4B11-48ED-8C43-34590A1FB9ED} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} - {C0EF53A5-5A94-4849-86B0-2297EA08D649} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} - {4FDD820F-8397-41B7-956E-F257DD044BD8} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} - {CA7C7A53-446F-453A-A57B-78BB1443B8A8} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} - {B32C5882-2313-40D0-A003-2FF33724CFE6} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} - {26F88A06-319C-43F3-9FD9-8BC2D29F8C00} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} {FED4267E-E5E4-49C5-98DB-8B3F203596EE} = {562D5067-8CD8-4F19-BCBB-873204932C61} {6B2734BF-C61D-4889-ABBF-456A4075D59B} = {FED4267E-E5E4-49C5-98DB-8B3F203596EE} {83371889-9A3E-4D16-AE77-EB4F83BC6374} = {FED4267E-E5E4-49C5-98DB-8B3F203596EE} From 9a4eb515955154d8cb3e1234a8a2a5311d01fe62 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Fri, 24 Jul 2020 21:12:50 +0430 Subject: [PATCH 55/75] [Azure] Move to GenericHost (#24283) --- .../samples/AzureADB2CSample/Program.cs | 31 ++++++++++++------- .../AzureAD/samples/AzureADSample/Program.cs | 29 ++++++++++------- .../Startup.cs | 16 +++++++--- .../samples/AzureAppServicesSample/Startup.cs | 19 +++++++----- 4 files changed, 60 insertions(+), 35 deletions(-) diff --git a/src/Azure/AzureAD/samples/AzureADB2CSample/Program.cs b/src/Azure/AzureAD/samples/AzureADB2CSample/Program.cs index 66988576d0..a497b4c56e 100644 --- a/src/Azure/AzureAD/samples/AzureADB2CSample/Program.cs +++ b/src/Azure/AzureAD/samples/AzureADB2CSample/Program.cs @@ -1,24 +1,30 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.IO; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace AzureADB2CSample { public class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - CreateWebHostBuilder(args).Build().Run(); - } - - public static IWebHostBuilder CreateWebHostBuilder(string[] args) => - new WebHostBuilder() - .UseContentRoot(Directory.GetCurrentDirectory()) - .ConfigureAppConfiguration((hostingContext, config) =>{ + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseKestrel() + .UseStartup(); + }) + .ConfigureAppConfiguration((hostingContext, config) => + { var env = hostingContext.HostingEnvironment; config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) @@ -32,8 +38,9 @@ namespace AzureADB2CSample .AddConsole() .AddDebug(); }) - .UseIISIntegration() - .UseKestrel() - .UseStartup(); + .Build(); + + return host.RunAsync(); + } } } diff --git a/src/Azure/AzureAD/samples/AzureADSample/Program.cs b/src/Azure/AzureAD/samples/AzureADSample/Program.cs index 6d31f69bc8..daf04c6f2f 100644 --- a/src/Azure/AzureAD/samples/AzureADSample/Program.cs +++ b/src/Azure/AzureAD/samples/AzureADSample/Program.cs @@ -2,23 +2,29 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.IO; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace AzureADSample { public class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - CreateWebHostBuilder(args).Build().Run(); - } - - public static IWebHostBuilder CreateWebHostBuilder(string[] args) => - new WebHostBuilder() - .UseContentRoot(Directory.GetCurrentDirectory()) - .ConfigureAppConfiguration((hostingContext, config) =>{ + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseKestrel() + .UseStartup(); + }) + .ConfigureAppConfiguration((hostingContext, config) => + { var env = hostingContext.HostingEnvironment; config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) @@ -32,8 +38,9 @@ namespace AzureADSample .AddConsole() .AddDebug(); }) - .UseIISIntegration() - .UseKestrel() - .UseStartup(); + .Build(); + + return host.RunAsync(); + } } } diff --git a/src/Azure/samples/AzureAppServicesHostingStartupSample/Startup.cs b/src/Azure/samples/AzureAppServicesHostingStartupSample/Startup.cs index 1a91822bc1..09de3fb3f0 100644 --- a/src/Azure/samples/AzureAppServicesHostingStartupSample/Startup.cs +++ b/src/Azure/samples/AzureAppServicesHostingStartupSample/Startup.cs @@ -1,8 +1,10 @@ using System; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace IISSample @@ -58,18 +60,22 @@ namespace IISSample }); } - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseStartup(); + }) .ConfigureLogging(factory => { factory.AddConsole(); }) - .UseKestrel() - .UseStartup() .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Azure/samples/AzureAppServicesSample/Startup.cs b/src/Azure/samples/AzureAppServicesSample/Startup.cs index 4638758d90..2347a3cb37 100644 --- a/src/Azure/samples/AzureAppServicesSample/Startup.cs +++ b/src/Azure/samples/AzureAppServicesSample/Startup.cs @@ -1,9 +1,11 @@ using System; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace IISSample @@ -70,20 +72,23 @@ namespace IISSample }); } - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseAzureAppServices() + .UseStartup(); + }) .ConfigureLogging(factory => { factory.AddConsole(); }) - .UseKestrel() - .UseAzureAppServices() - .UseStartup() .Build(); - host.Run(); + return host.RunAsync(); } } } - From 918d953767a8a9988c9e075254b70866e8b24e76 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Fri, 24 Jul 2020 09:45:11 -0700 Subject: [PATCH 56/75] Use Microsoft.CodeAnalysis.PublicApiAnalyzers (#24188) * Use Microsoft.CodeAnalysis.PublicApiAnalyzers - #4259 1/2 - followup 2/3 for 5266918ed2be - includes baselines for 16 MVC projects - will automated further additions in another PR - suppress warnings that may cause back-compat problems if fixed nit: sort `@(LatestPackageReference)` a bit better --- eng/Dependencies.props | 3 +- eng/Versions.props | 1 + eng/targets/CSharp.Common.targets | 24 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 852 ++++++ .../Mvc.ApiExplorer/src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 98 + src/Mvc/Mvc.Core/src/PublicAPI.Shipped.txt | 1 + src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt | 2453 +++++++++++++++++ .../ControllerLinkGeneratorExtensions.cs | 11 +- .../Routing/PageLinkGeneratorExtensions.cs | 7 +- src/Mvc/Mvc.Cors/src/PublicAPI.Shipped.txt | 1 + src/Mvc/Mvc.Cors/src/PublicAPI.Unshipped.txt | 12 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 38 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 13 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 137 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 78 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 54 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 24 + src/Mvc/Mvc.Razor/src/PublicAPI.Shipped.txt | 1 + src/Mvc/Mvc.Razor/src/PublicAPI.Unshipped.txt | 264 ++ .../Mvc.RazorPages/src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 638 +++++ .../Mvc.TagHelpers/src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 373 +++ src/Mvc/Mvc.Testing/src/PublicAPI.Shipped.txt | 1 + .../Mvc.Testing/src/PublicAPI.Unshipped.txt | 48 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 1160 ++++++++ src/Mvc/Mvc/src/PublicAPI.Shipped.txt | 1 + src/Mvc/Mvc/src/PublicAPI.Unshipped.txt | 10 + 37 files changed, 6309 insertions(+), 5 deletions(-) create mode 100644 src/Mvc/Mvc.Abstractions/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Core/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Cors/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Cors/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Localization/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Localization/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Razor/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Razor/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.RazorPages/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.RazorPages/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.TagHelpers/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.TagHelpers/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.Testing/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.Testing/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Unshipped.txt create mode 100644 src/Mvc/Mvc/src/PublicAPI.Shipped.txt create mode 100644 src/Mvc/Mvc/src/PublicAPI.Unshipped.txt diff --git a/eng/Dependencies.props b/eng/Dependencies.props index 0e3a756de7..081db9be88 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -106,6 +106,7 @@ and are generated based on the last package release. + @@ -161,6 +162,7 @@ and are generated based on the last package release. + @@ -178,7 +180,6 @@ and are generated based on the last package release. - diff --git a/eng/Versions.props b/eng/Versions.props index 00896bd2bc..d11516a861 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -219,6 +219,7 @@ 3.7.0-4.20351.7 3.7.0-4.20351.7 3.7.0-4.20351.7 + 3.3.0-beta2.final 3.0.0 1.0.0-20200708.1 3.19.8 diff --git a/eng/targets/CSharp.Common.targets b/eng/targets/CSharp.Common.targets index 65d5f3b0fc..62b7462035 100644 --- a/eng/targets/CSharp.Common.targets +++ b/eng/targets/CSharp.Common.targets @@ -6,6 +6,30 @@ .NETFramework + + + <_TFMDirectory>$(TargetFramework) + <_TFMDirectory Condition=" '$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' ">netcoreapp + + + $(NoWarn);RS0041 + + + + + + + + + + + diff --git a/src/Mvc/Mvc.Abstractions/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Abstractions/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Abstractions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..af5b4f50c8 --- /dev/null +++ b/src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,852 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.ActionConstraints.get -> System.Collections.Generic.IList? +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.ActionConstraints.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.ActionDescriptor() -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.AttributeRouteInfo.get -> Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo? +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.AttributeRouteInfo.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.BoundProperties.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.BoundProperties.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.EndpointMetadata.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.EndpointMetadata.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.FilterDescriptors.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.FilterDescriptors.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.Id.get -> string! +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.Parameters.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.Parameters.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.Properties.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.Properties.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.RouteValues.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.RouteValues.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorExtensions +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext.ActionDescriptorProviderContext() -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext.Results.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext +Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext! +Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext.ActionInvokerProviderContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext) -> void +Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext.Result.get -> Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker? +Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext.Result.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider +Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker +Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker.InvokeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider +Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor.BindingInfo.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo! +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor.BindingInfo.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor.Name.get -> string! +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor.Name.set -> void +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor.ParameterDescriptor() -> void +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor.ParameterType.get -> System.Type! +Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor.ParameterType.set -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext.ActionConstraintContext() -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext.Candidates.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext.Candidates.set -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext.CurrentCandidate.get -> Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext.CurrentCandidate.set -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext.RouteContext.get -> Microsoft.AspNetCore.Routing.RouteContext! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext.RouteContext.set -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem.ActionConstraintItem(Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata! metadata) -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem.Constraint.get -> Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem.Constraint.set -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem.IsReusable.set -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem.Metadata.get -> Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext.Action.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext.ActionConstraintProviderContext(Microsoft.AspNetCore.Http.HttpContext! context, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! action, System.Collections.Generic.IList! items) -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext.Results.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate.Action.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate.ActionSelectorCandidate(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! action, System.Collections.Generic.IReadOnlyList! constraints) -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate.Constraints.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint.Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext! context) -> bool +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint.Order.get -> int +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintFactory +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintFactory.CreateInstance(System.IServiceProvider! services) -> Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint! +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintFactory.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.ActionContext +Microsoft.AspNetCore.Mvc.ActionContext.ActionContext() -> void +Microsoft.AspNetCore.Mvc.ActionContext.ActionContext(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.RouteData! routeData, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! actionDescriptor) -> void +Microsoft.AspNetCore.Mvc.ActionContext.ActionContext(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.RouteData! routeData, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! actionDescriptor, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! modelState) -> void +Microsoft.AspNetCore.Mvc.ActionContext.ActionContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext) -> void +Microsoft.AspNetCore.Mvc.ActionContext.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! +Microsoft.AspNetCore.Mvc.ActionContext.ActionDescriptor.set -> void +Microsoft.AspNetCore.Mvc.ActionContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Mvc.ActionContext.HttpContext.set -> void +Microsoft.AspNetCore.Mvc.ActionContext.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! +Microsoft.AspNetCore.Mvc.ActionContext.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData! +Microsoft.AspNetCore.Mvc.ActionContext.RouteData.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ActionDescriptor.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ApiDescription() -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.GroupName.get -> string? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.GroupName.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.HttpMethod.get -> string? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.HttpMethod.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ParameterDescriptions.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.Properties.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.RelativePath.get -> string! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.RelativePath.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.SupportedRequestFormats.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.SupportedResponseTypes.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext.Actions.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext.ApiDescriptionProviderContext(System.Collections.Generic.IReadOnlyList! actions) -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext.Results.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ApiParameterDescription() -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.BindingInfo.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.BindingInfo.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.DefaultValue.get -> object? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.DefaultValue.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.IsRequired.get -> bool +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.IsRequired.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ModelMetadata.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Name.get -> string! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Name.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ParameterDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ParameterDescriptor.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.RouteInfo.get -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.RouteInfo.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Source.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Source.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Type.get -> System.Type! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Type.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.ApiParameterRouteInfo() -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.Constraints.get -> System.Collections.Generic.IEnumerable? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.Constraints.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.DefaultValue.get -> object? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.DefaultValue.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.IsOptional.get -> bool +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.IsOptional.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.ApiRequestFormat() -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.Formatter.get -> Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.Formatter.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.MediaType.get -> string! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.MediaType.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.ApiResponseFormat() -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.Formatter.get -> Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.Formatter.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.MediaType.get -> string! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.MediaType.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ApiResponseFormats.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ApiResponseFormats.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ApiResponseType() -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.IsDefaultResponse.get -> bool +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.IsDefaultResponse.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ModelMetadata.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.StatusCode.get -> int +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.Type.get -> System.Type? +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.Type.set -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter +Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext +Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.ActionExecutedContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters, object! controller) -> void +Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext +Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext.ActionExecutingContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters, System.Collections.Generic.IDictionary! actionArguments, object! controller) -> void +Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate +Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext +Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext.AuthorizationFilterContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters) -> void +Microsoft.AspNetCore.Mvc.Filters.ExceptionContext +Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.ExceptionContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters) -> void +Microsoft.AspNetCore.Mvc.Filters.FilterContext +Microsoft.AspNetCore.Mvc.Filters.FilterContext.FilterContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters) -> void +Microsoft.AspNetCore.Mvc.Filters.FilterContext.FindEffectivePolicy() -> TMetadata +Microsoft.AspNetCore.Mvc.Filters.FilterContext.IsEffectivePolicy(TMetadata policy) -> bool +Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor +Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata! +Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor.FilterDescriptor(Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata! filter, int filterScope) -> void +Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor.Order.get -> int +Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor.Order.set -> void +Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor.Scope.get -> int +Microsoft.AspNetCore.Mvc.Filters.FilterItem +Microsoft.AspNetCore.Mvc.Filters.FilterItem.Descriptor.get -> Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor! +Microsoft.AspNetCore.Mvc.Filters.FilterItem.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata! +Microsoft.AspNetCore.Mvc.Filters.FilterItem.Filter.set -> void +Microsoft.AspNetCore.Mvc.Filters.FilterItem.FilterItem(Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor! descriptor) -> void +Microsoft.AspNetCore.Mvc.Filters.FilterItem.FilterItem(Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor! descriptor, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata! filter) -> void +Microsoft.AspNetCore.Mvc.Filters.FilterItem.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.Filters.FilterItem.IsReusable.set -> void +Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext +Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext! +Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext.ActionContext.set -> void +Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext.FilterProviderContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! items) -> void +Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext.Results.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext.Results.set -> void +Microsoft.AspNetCore.Mvc.Filters.IActionFilter +Microsoft.AspNetCore.Mvc.Filters.IActionFilter.OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IActionFilter.OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IAlwaysRunResultFilter +Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter +Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter.OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext! context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate! next) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Filters.IAsyncAlwaysRunResultFilter +Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter +Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter.OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter +Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter.OnExceptionAsync(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Filters.IAsyncResourceFilter +Microsoft.AspNetCore.Mvc.Filters.IAsyncResourceFilter.OnResourceExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext! context, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate! next) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter +Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter.OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext! context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate! next) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter +Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter.OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter +Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter.OnException(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IFilterContainer +Microsoft.AspNetCore.Mvc.Filters.IFilterContainer.FilterDefinition.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata! +Microsoft.AspNetCore.Mvc.Filters.IFilterContainer.FilterDefinition.set -> void +Microsoft.AspNetCore.Mvc.Filters.IFilterFactory +Microsoft.AspNetCore.Mvc.Filters.IFilterFactory.CreateInstance(System.IServiceProvider! serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata! +Microsoft.AspNetCore.Mvc.Filters.IFilterFactory.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +Microsoft.AspNetCore.Mvc.Filters.IFilterProvider +Microsoft.AspNetCore.Mvc.Filters.IFilterProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IFilterProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IFilterProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter +Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter.Order.get -> int +Microsoft.AspNetCore.Mvc.Filters.IResourceFilter +Microsoft.AspNetCore.Mvc.Filters.IResourceFilter.OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IResourceFilter.OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IResultFilter +Microsoft.AspNetCore.Mvc.Filters.IResultFilter.OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.IResultFilter.OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext! context) -> void +Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext +Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.ResourceExecutedContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters) -> void +Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext +Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext.ResourceExecutingContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters, System.Collections.Generic.IList! valueProviderFactories) -> void +Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext.ValueProviderFactories.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate +Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext +Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.ResultExecutedContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters, Microsoft.AspNetCore.Mvc.IActionResult! result, object! controller) -> void +Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext +Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext.ResultExecutingContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, System.Collections.Generic.IList! filters, Microsoft.AspNetCore.Mvc.IActionResult! result, object! controller) -> void +Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate +Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection +Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection.FormatterCollection() -> void +Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection.FormatterCollection(System.Collections.Generic.IList! list) -> void +Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection.RemoveType(System.Type! formatterType) -> void +Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection.RemoveType() -> void +Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter +Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter.CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext! context) -> bool +Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter.ReadAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy +Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy.ExceptionPolicy.get -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter.CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext! context) -> bool +Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter.WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.InputFormatterContext(Microsoft.AspNetCore.Http.HttpContext! httpContext, string! modelName, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! modelState, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata, System.Func! readerFactory) -> void +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.InputFormatterContext(Microsoft.AspNetCore.Http.HttpContext! httpContext, string! modelName, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! modelState, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata, System.Func! readerFactory, bool treatEmptyInputAsDefaultValue) -> void +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.ModelName.get -> string! +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.ModelType.get -> System.Type! +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.ReaderFactory.get -> System.Func! +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext.TreatEmptyInputAsDefaultValue.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException.InputFormatterException() -> void +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException.InputFormatterException(string! message) -> void +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException.InputFormatterException(string! message, System.Exception! innerException) -> void +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy.AllExceptions = 0 -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy.MalformedInputExceptions = 1 -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.HasError.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.IsModelSet.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.Model.get -> object? +Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext +Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.OutputFormatterCanWriteContext(Microsoft.AspNetCore.Http.HttpContext! httpContext) -> void +Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext +Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext.OutputFormatterWriteContext(Microsoft.AspNetCore.Http.HttpContext! httpContext, System.Func! writerFactory, System.Type! objectType, object! object) -> void +Microsoft.AspNetCore.Mvc.IActionResult +Microsoft.AspNetCore.Mvc.IActionResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.IUrlHelper +Microsoft.AspNetCore.Mvc.IUrlHelper.Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext! actionContext) -> string! +Microsoft.AspNetCore.Mvc.IUrlHelper.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext! +Microsoft.AspNetCore.Mvc.IUrlHelper.Content(string! contentPath) -> string! +Microsoft.AspNetCore.Mvc.IUrlHelper.IsLocalUrl(string! url) -> bool +Microsoft.AspNetCore.Mvc.IUrlHelper.Link(string! routeName, object! values) -> string! +Microsoft.AspNetCore.Mvc.IUrlHelper.RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext! routeContext) -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BinderModelName.get -> string? +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BinderModelName.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BinderType.get -> System.Type? +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BinderType.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BindingInfo() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BindingInfo(Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo! other) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.BindingSource.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.EmptyBodyBehavior.get -> Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.EmptyBodyBehavior.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.PropertyFilterProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider? +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.PropertyFilterProvider.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.RequestPredicate.get -> System.Func? +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.RequestPredicate.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.TryApplyBindingInfo(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! modelMetadata) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.BindingSource(string! id, string! displayName, bool isGreedy, bool isFromRequest) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.DisplayName.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Equals(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? other) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Id.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.IsFromRequest.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.IsGreedy.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource +Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource.BindingSources.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Allow = 1 -> Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Default = 0 -> Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Disallow = 2 -> Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.EnumGroupAndName +Microsoft.AspNetCore.Mvc.ModelBinding.EnumGroupAndName.EnumGroupAndName(string! group, System.Func! name) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.EnumGroupAndName.EnumGroupAndName(string! group, string! name) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.EnumGroupAndName.Group.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.EnumGroupAndName.Name.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata +Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata.BinderType.get -> System.Type! +Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata +Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? +Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext! bindingContext) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext! context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder! +Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider.GetMetadataForProperties(System.Type! modelType) -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider.GetMetadataForType(System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider.Name.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider.PropertyFilter.get -> System.Func! +Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider.RequestPredicate.get -> System.Func! +Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider.ContainsPrefix(string! prefix) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider.GetValue(string! key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory.CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.ModelBindingMessageProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ContainerType.get -> System.Type? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.Equals(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity other) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.MetadataKind.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ModelType.get -> System.Type! +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.Name.get -> string? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ParameterInfo.get -> System.Reflection.ParameterInfo? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.PropertyInfo.get -> System.Reflection.PropertyInfo? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind.Parameter = 2 -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind.Property = 1 -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind.Type = 0 -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.ModelBinderProviderContext() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelBindingContext() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope.Dispose() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope.NestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext! context) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.OriginalModelName.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.OriginalModelName.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult other) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.IsModelSet.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.Model.get -> object? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelError +Microsoft.AspNetCore.Mvc.ModelBinding.ModelError.ErrorMessage.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelError.Exception.get -> System.Exception? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelError.ModelError(System.Exception! exception) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelError.ModelError(System.Exception! exception, string? errorMessage) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelError.ModelError(string? errorMessage) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection +Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection.Add(System.Exception! exception) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection.Add(string! errorMessage) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection.ModelErrorCollection() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ContainerType.get -> System.Type? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ElementType.get -> System.Type? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata? other) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.GetDisplayName() -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Identity.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsCollectionType.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsComplexType.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsEnumerableType.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsNullableValueType.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsReferenceOrNullableType.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.MetadataKind.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity identity) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ModelType.get -> System.Type! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Name.get -> string? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ParameterName.get -> string? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.PropertyName.get -> string? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.UnderlyingOrModelType.get -> System.Type! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.ModelMetadataProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelPropertyCollection +Microsoft.AspNetCore.Mvc.ModelBinding.ModelPropertyCollection.ModelPropertyCollection(System.Collections.Generic.IEnumerable! properties) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelPropertyCollection.this[string! propertyName].get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.AddModelError(string! key, System.Exception! exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.AddModelError(string! key, string! errorMessage) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Clear() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ClearValidationState(string! key) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Count.get -> int +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator.Enumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary, string! prefix) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator.Reset() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ErrorCount.get -> int +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.FindKeysWithPrefix(string! prefix) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.PrefixEnumerable +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.GetEnumerator() -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.GetFieldValidationState(string! key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.GetValidationState(string! key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.HasReachedMaxErrors.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.IsValid.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerable +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerable.GetEnumerator() -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerable.KeyEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator.Current.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator.Dispose() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator.KeyEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary, string! prefix) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator.MoveNext() -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator.Reset() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Keys.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerable +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.MarkFieldSkipped(string! key) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.MarkFieldValid(string! key) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.MaxAllowedErrors.get -> int +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.MaxAllowedErrors.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Merge(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ModelStateDictionary() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ModelStateDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ModelStateDictionary(int maxAllowedErrors) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.PrefixEnumerable +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.PrefixEnumerable.GetEnumerator() -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.PrefixEnumerable.PrefixEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary, string! prefix) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Remove(string! key) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Root.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.SetModelValue(string! key, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult valueProviderResult) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.SetModelValue(string! key, object? rawValue, string! attemptedValue) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.TryAddModelError(string! key, System.Exception! exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.TryAddModelError(string! key, string! errorMessage) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.TryAddModelException(string! key, System.Exception! exception) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.TryGetValue(string! key, out Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry? value) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValidationState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerable +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerable.GetEnumerator() -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerable.ValueEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator.Current.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator.Dispose() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator.MoveNext() -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator.Reset() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator.ValueEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! dictionary, string! prefix) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Values.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerable +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.this[string! key].get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.AttemptedValue.get -> string? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.AttemptedValue.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.Errors.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection! +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.ModelStateEntry() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.RawValue.get -> object? +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.RawValue.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.ValidationState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.ValidationState.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Invalid = 1 -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Skipped = 3 -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Unvalidated = 0 -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Valid = 2 -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState +Microsoft.AspNetCore.Mvc.ModelBinding.TooManyModelErrorsException +Microsoft.AspNetCore.Mvc.ModelBinding.TooManyModelErrorsException.TooManyModelErrorsException(string! message) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext.Attributes.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext.ClientModelValidationContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider! metadataProvider, System.Collections.Generic.IDictionary! attributes) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem.ClientValidatorItem() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem.ClientValidatorItem(object! validatorMetadata) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem.IsReusable.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem.Validator.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem.Validator.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem.ValidatorMetadata.get -> object! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext.ClientValidatorProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! modelMetadata, System.Collections.Generic.IList! items) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext.Results.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext.ValidatorMetadata.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator.AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext! context) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider.CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator.Validate(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext! context) -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider.CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext! context) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter.ShouldValidateEntry(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry entry, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry parentEntry) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy.GetChildren(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata, string! key, object! model) -> System.Collections.Generic.IEnumerator! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext.Container.get -> object! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext.Model.get -> object! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext.ModelValidationContext(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! modelMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider! metadataProvider, object! container, object! model) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase.ModelValidationContextBase(Microsoft.AspNetCore.Mvc.ActionContext! actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! modelMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider! metadataProvider) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult.MemberName.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult.Message.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult.ModelValidationResult(string! memberName, string! message) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext.ModelMetadata.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext.ModelValidatorProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! modelMetadata, System.Collections.Generic.IList! items) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext.Results.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext.ValidatorMetadata.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry.Key.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry.Model.get -> object? +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry.ValidationEntry(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata, string! key, System.Func! modelAccessor) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry.ValidationEntry(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata, string! key, object! model) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Add(System.Collections.Generic.KeyValuePair item) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Add(object! key, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry! value) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Clear() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Contains(System.Collections.Generic.KeyValuePair item) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.ContainsKey(object! key) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.CopyTo(System.Collections.Generic.KeyValuePair[]! array, int arrayIndex) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Count.get -> int +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.GetEnumerator() -> System.Collections.Generic.IEnumerator>! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.IsReadOnly.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Remove(System.Collections.Generic.KeyValuePair item) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Remove(object! key) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.TryGetValue(object! key, out Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry! value) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.ValidationStateDictionary() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.Values.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.this[object! key].get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry? +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary.this[object! key].set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.Key.get -> string! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.Key.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.Metadata.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.Strategy.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.Strategy.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.SuppressValidation.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.SuppressValidation.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry.ValidationStateEntry() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem.IsReusable.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem.Validator.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator! +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem.Validator.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem.ValidatorItem() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem.ValidatorItem(object! validatorMetadata) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem.ValidatorMetadata.get -> object! +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderException +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderException.ValueProviderException(string! message) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderException.ValueProviderException(string! message, System.Exception! innerException) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext! +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext.ValueProviderFactoryContext(Microsoft.AspNetCore.Mvc.ActionContext! context) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext.ValueProviders.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.Culture.get -> System.Globalization.CultureInfo! +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult other) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.FirstValue.get -> string? +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.GetEnumerator() -> System.Collections.Generic.IEnumerator! +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.Length.get -> int +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values, System.Globalization.CultureInfo! culture) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.Values.get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.AttributeRouteInfo() -> void +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.Name.get -> string! +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.Name.set -> void +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.Order.get -> int +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.Order.set -> void +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.SuppressLinkGeneration.get -> bool +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.SuppressLinkGeneration.set -> void +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.SuppressPathMatching.get -> bool +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.SuppressPathMatching.set -> void +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.Template.get -> string? +Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo.Template.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Action.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Action.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Controller.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Controller.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Fragment.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Fragment.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Host.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Host.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Protocol.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Protocol.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.UrlActionContext() -> void +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Values.get -> object? +Microsoft.AspNetCore.Mvc.Routing.UrlActionContext.Values.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Fragment.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Fragment.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Host.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Host.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Protocol.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Protocol.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.RouteName.get -> string? +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.RouteName.set -> void +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.UrlRouteContext() -> void +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Values.get -> object? +Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext.Values.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.BindingInfo.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ActionContext.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.BinderModelName.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.BinderModelName.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.BindingSource.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.EnterNestedScope() -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.EnterNestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! modelMetadata, string! fieldName, string! modelName, object! model) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ExitNestedScope() -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.FieldName.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.FieldName.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.IsTopLevelObject.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.IsTopLevelObject.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.Model.get -> object! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.Model.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelMetadata.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelName.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelName.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelState.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.PropertyFilter.get -> System.Func! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.PropertyFilter.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.Result.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.Result.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ValidationState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ValidationState.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ValueProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ValueProvider.set -> void +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.AdditionalValues.get -> System.Collections.Generic.IReadOnlyDictionary! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.BinderModelName.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.BinderType.get -> System.Type! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ConvertEmptyStringToNull.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.DataTypeName.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Description.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.DisplayFormatString.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.DisplayName.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.EditFormatString.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ElementMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata? +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.EnumGroupedDisplayNamesAndValues.get -> System.Collections.Generic.IEnumerable>! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.EnumNamesAndValues.get -> System.Collections.Generic.IReadOnlyDictionary! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.HasNonDefaultEditFormat.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.HideSurroundingHtml.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.HtmlEncode.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsBindingAllowed.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsBindingRequired.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsEnum.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsFlagsEnum.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsReadOnly.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.IsRequired.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ModelBindingMessageProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.NullDisplayText.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Order.get -> int +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Placeholder.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Properties.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelPropertyCollection! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.PropertyFilterProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.PropertyGetter.get -> System.Func! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.PropertySetter.get -> System.Action! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ShowForDisplay.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ShowForEdit.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.SimpleDisplayProperty.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.TemplateHint.get -> string! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ValidateChildren.get -> bool +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ValidatorMetadata.get -> System.Collections.Generic.IReadOnlyList! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForParameter(System.Reflection.ParameterInfo! parameter) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForProperties(System.Type! modelType) -> System.Collections.Generic.IEnumerable! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForType(System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.Children.get -> System.Collections.Generic.IReadOnlyList? +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.GetModelStateForProperty(string! propertyName) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry? +abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry.IsContainerNode.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.GetHashCode() -> int +override Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource.CanAcceptDataFrom(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! bindingSource) -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.GetHashCode() -> int +override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.GetHashCode() -> int +override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.ToString() -> string! +override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.GetHashCode() -> int +override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.GetHashCode() -> int +override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.ToString() -> string! +static Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorExtensions.GetProperty(this Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! actionDescriptor) -> T +static Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorExtensions.SetProperty(this Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! actionDescriptor, T value) -> void +static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.Failure() -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult! +static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.FailureAsync() -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.NoValue() -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult! +static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.NoValueAsync() -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.Success(object! model) -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult! +static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult.SuccessAsync(object! model) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.GetBindingInfo(System.Collections.Generic.IEnumerable! attributes) -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo? +static Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.GetBindingInfo(System.Collections.Generic.IEnumerable! attributes, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! modelMetadata) -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo? +static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s2) -> bool +static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s2) -> bool +static Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource.Create(System.Collections.Generic.IEnumerable! bindingSources, string! displayName) -> Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource! +static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForParameter(System.Reflection.ParameterInfo! parameter) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForParameter(System.Reflection.ParameterInfo! parameter, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForProperty(System.Reflection.PropertyInfo! propertyInfo, System.Type! modelType, System.Type! containerType) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForProperty(System.Type! modelType, string! name, System.Type! containerType) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForType(System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.Failed() -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult +static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.Success(object! model) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult +static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult y) -> bool +static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult.operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult y) -> bool +static Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.StartsWithPrefix(string! prefix, string! key) -> bool +static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.None -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.explicit operator string!(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult result) -> string! +static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.explicit operator string![]!(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult result) -> string![]! +static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult y) -> bool +static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult.operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult y) -> bool +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Body -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Custom -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Form -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.FormFile -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Header -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.ModelBinding -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Path -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Query -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Services -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.Special -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.DefaultOrder -> int +static readonly Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.DefaultMaxAllowedErrors -> int +virtual Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.DisplayName.get -> string? +virtual Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.DisplayName.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.Canceled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.Canceled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.Controller.get -> object! +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.Exception.get -> System.Exception? +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.Exception.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.ExceptionDispatchInfo.get -> System.Runtime.ExceptionServices.ExceptionDispatchInfo? +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.ExceptionDispatchInfo.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.ExceptionHandled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.ExceptionHandled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult! +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext.Result.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext.ActionArguments.get -> System.Collections.Generic.IDictionary! +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext.Controller.get -> object! +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult? +virtual Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext.Result.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult? +virtual Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext.Result.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.Exception.get -> System.Exception! +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.Exception.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.ExceptionDispatchInfo.get -> System.Runtime.ExceptionServices.ExceptionDispatchInfo? +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.ExceptionDispatchInfo.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.ExceptionHandled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.ExceptionHandled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult? +virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionContext.Result.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.FilterContext.Filters.get -> System.Collections.Generic.IList! +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.Canceled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.Canceled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.Exception.get -> System.Exception? +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.Exception.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.ExceptionDispatchInfo.get -> System.Runtime.ExceptionServices.ExceptionDispatchInfo? +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.ExceptionDispatchInfo.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.ExceptionHandled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.ExceptionHandled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult? +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext.Result.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult? +virtual Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext.Result.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.Canceled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.Canceled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.Controller.get -> object! +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.Exception.get -> System.Exception? +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.Exception.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.ExceptionDispatchInfo.get -> System.Runtime.ExceptionServices.ExceptionDispatchInfo? +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.ExceptionDispatchInfo.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.ExceptionHandled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.ExceptionHandled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult! +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext.Cancel.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext.Cancel.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext.Controller.get -> object! +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult! +virtual Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext.Result.set -> void +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.ContentType.get -> Microsoft.Extensions.Primitives.StringSegment +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.ContentType.set -> void +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.ContentTypeIsServerDefined.get -> bool +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.ContentTypeIsServerDefined.set -> void +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.HttpContext.set -> void +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.Object.get -> object? +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.Object.set -> void +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.ObjectType.get -> System.Type? +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.ObjectType.set -> void +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext.WriterFactory.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext.WriterFactory.set -> void +virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.CanAcceptDataFrom(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! bindingSource) -> bool +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.AttemptedValueIsInvalidAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.MissingBindRequiredValueAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.MissingKeyOrValueAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.MissingRequestBodyRequiredValueAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.NonPropertyAttemptedValueIsInvalidAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.NonPropertyUnknownValueIsInvalidAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.NonPropertyValueMustBeANumberAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.UnknownValueIsInvalidAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.ValueIsInvalidAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.ValueMustBeANumberAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.ValueMustNotBeNullAccessor.get -> System.Func! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! metadata, Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo! bindingInfo) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.Services.get -> System.IServiceProvider! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelType.get -> System.Type! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ContainerMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.GetMetadataForProperties(System.Type! modelType) -> System.Collections.Generic.IEnumerable! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.GetMetadataForType(System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.HasValidators.get -> bool? +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.PropertyValidationFilter.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter? +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForParameter(System.Reflection.ParameterInfo! parameter, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForProperty(System.Reflection.PropertyInfo! propertyInfo, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! diff --git a/src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..350535acbe --- /dev/null +++ b/src/Mvc/Mvc.ApiExplorer/src/PublicAPI.Unshipped.txt @@ -0,0 +1,98 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ActionDescriptor.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ApiDescription() -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.GroupName.get -> string? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.GroupName.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.HttpMethod.get -> string? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.HttpMethod.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.ParameterDescriptions.get -> System.Collections.Generic.IList! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.Properties.get -> System.Collections.Generic.IDictionary! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.RelativePath.get -> string! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.RelativePath.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.SupportedRequestFormats.get -> System.Collections.Generic.IList! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription.SupportedResponseTypes.get -> System.Collections.Generic.IList! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionExtensions +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroup +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection.Version.get -> int +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext.Actions.get -> System.Collections.Generic.IReadOnlyList! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext.ApiDescriptionProviderContext(System.Collections.Generic.IReadOnlyList! actions) -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext.Results.get -> System.Collections.Generic.IList! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ApiParameterDescription() -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.BindingInfo.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.BindingInfo.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.DefaultValue.get -> object? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.DefaultValue.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.IsRequired.get -> bool (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.IsRequired.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ModelMetadata.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Name.get -> string! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Name.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ParameterDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.ParameterDescriptor.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.RouteInfo.get -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.RouteInfo.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Source.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Source.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Type.get -> System.Type! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription.Type.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.ApiParameterRouteInfo() -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.Constraints.get -> System.Collections.Generic.IEnumerable? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.Constraints.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.DefaultValue.get -> object? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.DefaultValue.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.IsOptional.get -> bool (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo.IsOptional.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.ApiRequestFormat() -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.Formatter.get -> Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.Formatter.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.MediaType.get -> string! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat.MediaType.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.ApiResponseFormat() -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.Formatter.get -> Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.Formatter.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.MediaType.get -> string! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat.MediaType.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ApiResponseFormats.get -> System.Collections.Generic.IList! (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ApiResponseFormats.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ApiResponseType() -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.IsDefaultResponse.get -> bool (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.IsDefaultResponse.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.ModelMetadata.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.StatusCode.get -> int (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.StatusCode.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.Type.get -> System.Type? (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType.Type.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext! context) -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext! context) -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider.Order.get -> int (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.Extensions.DependencyInjection.MvcApiExplorerMvcCoreBuilderExtensions +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroup.ApiDescriptionGroup(string groupName, System.Collections.Generic.IReadOnlyList items) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroup.GroupName.get -> string +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroup.Items.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection.ApiDescriptionGroupCollection(System.Collections.Generic.IReadOnlyList items, int version) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection.Items.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider.ApiDescriptionGroupCollectionProvider(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, System.Collections.Generic.IEnumerable apiDescriptionProviders) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider.ApiDescriptionGroups.get -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection +~Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider.DefaultApiDescriptionProvider(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Routing.IInlineConstraintResolver constraintResolver, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.Extensions.Options.IOptions routeOptions) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider.ApiDescriptionGroups.get -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection +~static Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionExtensions.GetProperty(this Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription apiDescription) -> T +~static Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionExtensions.SetProperty(this Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription apiDescription, T value) -> void +~static Microsoft.Extensions.DependencyInjection.MvcApiExplorerMvcCoreBuilderExtensions.AddApiExplorer(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder diff --git a/src/Mvc/Mvc.Core/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Core/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Core/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..04d15cb58d --- /dev/null +++ b/src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt @@ -0,0 +1,2453 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder +Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions +Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions +Microsoft.AspNetCore.Builder.MvcAreaRouteBuilderExtensions +Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute +Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.AcceptedAtActionResult +Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult +Microsoft.AspNetCore.Mvc.AcceptedResult +Microsoft.AspNetCore.Mvc.AcceptedResult.AcceptedResult() -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute.ActionMethodSelectorAttribute() -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint +Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint.Order.get -> int +Microsoft.AspNetCore.Mvc.ActionContextAttribute +Microsoft.AspNetCore.Mvc.ActionContextAttribute.ActionContextAttribute() -> void +Microsoft.AspNetCore.Mvc.ActionNameAttribute +Microsoft.AspNetCore.Mvc.ActionResult +Microsoft.AspNetCore.Mvc.ActionResult.ActionResult() -> void +Microsoft.AspNetCore.Mvc.ActionResult +Microsoft.AspNetCore.Mvc.ActionResult.ActionResult(TValue value) -> void +Microsoft.AspNetCore.Mvc.ActionResult.Value.get -> TValue +Microsoft.AspNetCore.Mvc.AntiforgeryValidationFailedResult +Microsoft.AspNetCore.Mvc.AntiforgeryValidationFailedResult.AntiforgeryValidationFailedResult() -> void +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.ApiBehaviorOptions() -> void +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressConsumesConstraintForFormFileParameters.get -> bool +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressConsumesConstraintForFormFileParameters.set -> void +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressInferBindingSourcesForParameters.get -> bool +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressInferBindingSourcesForParameters.set -> void +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressMapClientErrors.get -> bool +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressMapClientErrors.set -> void +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressModelStateInvalidFilter.get -> bool +Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressModelStateInvalidFilter.set -> void +Microsoft.AspNetCore.Mvc.ApiControllerAttribute +Microsoft.AspNetCore.Mvc.ApiControllerAttribute.ApiControllerAttribute() -> void +Microsoft.AspNetCore.Mvc.ApiConventionMethodAttribute +Microsoft.AspNetCore.Mvc.ApiConventionTypeAttribute +Microsoft.AspNetCore.Mvc.ApiDescriptionActionData +Microsoft.AspNetCore.Mvc.ApiDescriptionActionData.ApiDescriptionActionData() -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchAttribute +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchAttribute.ApiConventionNameMatchAttribute(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior matchBehavior) -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchAttribute.MatchBehavior.get -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior.Any = 0 -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior.Exact = 1 -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior.Prefix = 2 -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior.Suffix = 3 -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionResult +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchAttribute +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchAttribute.ApiConventionTypeMatchAttribute(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior matchBehavior) -> void +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchAttribute.MatchBehavior.get -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior.Any = 0 -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior.AssignableFrom = 1 -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDefaultResponseMetadataProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupNameProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionVisibilityProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionVisibilityProvider.IgnoreApi.get -> bool +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider.StatusCode.get -> int +Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider +Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute +Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute.ApiExplorerSettingsAttribute() -> void +Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute.IgnoreApi.get -> bool +Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute.IgnoreApi.set -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel +Microsoft.AspNetCore.Mvc.ApplicationModels.ApiConventionApplicationModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel +Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel.ApiExplorerModel() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel.IsVisible.get -> bool? +Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel.IsVisible.set -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ApiVisibilityConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.ApiVisibilityConvention.ApiVisibilityConvention() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel +Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel.ApplicationModel() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.AttributeRouteModel() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.IsAbsoluteTemplate.get -> bool +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.Order.get -> int? +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.Order.set -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.SuppressLinkGeneration.get -> bool +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.SuppressLinkGeneration.set -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.SuppressPathMatching.get -> bool +Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.SuppressPathMatching.set -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ClientErrorResultFilterConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.ClientErrorResultFilterConvention.ClientErrorResultFilterConvention() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ConsumesConstraintForFormFileParameterConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.ConsumesConstraintForFormFileParameterConvention.ConsumesConstraintForFormFileParameterConvention() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel +Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel +Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider +Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel +Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel +Microsoft.AspNetCore.Mvc.ApplicationModels.IControllerModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel +Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel +Microsoft.AspNetCore.Mvc.ApplicationModels.InferParameterBindingInfoConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.InvalidModelStateFilterConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.InvalidModelStateFilterConvention.InvalidModelStateFilterConvention() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel +Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase +Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel +Microsoft.AspNetCore.Mvc.ApplicationModels.RouteTokenTransformerConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel +Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel.SelectorModel() -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart.ApplicationPart() -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory.ApplicationPartFactory() -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.ApplicationPartManager() -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeature(TFeature feature) -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart +Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory +Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory.DefaultApplicationPartFactory() -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider +Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider +Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationPartTypeProvider +Microsoft.AspNetCore.Mvc.ApplicationParts.ICompilationReferencesProvider +Microsoft.AspNetCore.Mvc.ApplicationParts.NullApplicationPartFactory +Microsoft.AspNetCore.Mvc.ApplicationParts.NullApplicationPartFactory.NullApplicationPartFactory() -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute +Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute +Microsoft.AspNetCore.Mvc.AreaAttribute +Microsoft.AspNetCore.Mvc.Authorization.AllowAnonymousFilter +Microsoft.AspNetCore.Mvc.Authorization.AllowAnonymousFilter.AllowAnonymousFilter() -> void +Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter +Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.AuthorizeFilter() -> void +Microsoft.AspNetCore.Mvc.BadRequestObjectResult +Microsoft.AspNetCore.Mvc.BadRequestResult +Microsoft.AspNetCore.Mvc.BadRequestResult.BadRequestResult() -> void +Microsoft.AspNetCore.Mvc.BindAttribute +Microsoft.AspNetCore.Mvc.BindPropertiesAttribute +Microsoft.AspNetCore.Mvc.BindPropertiesAttribute.BindPropertiesAttribute() -> void +Microsoft.AspNetCore.Mvc.BindPropertiesAttribute.SupportsGet.get -> bool +Microsoft.AspNetCore.Mvc.BindPropertiesAttribute.SupportsGet.set -> void +Microsoft.AspNetCore.Mvc.BindPropertyAttribute +Microsoft.AspNetCore.Mvc.BindPropertyAttribute.BindPropertyAttribute() -> void +Microsoft.AspNetCore.Mvc.BindPropertyAttribute.SupportsGet.get -> bool +Microsoft.AspNetCore.Mvc.BindPropertyAttribute.SupportsGet.set -> void +Microsoft.AspNetCore.Mvc.CacheProfile +Microsoft.AspNetCore.Mvc.CacheProfile.CacheProfile() -> void +Microsoft.AspNetCore.Mvc.CacheProfile.Duration.get -> int? +Microsoft.AspNetCore.Mvc.CacheProfile.Duration.set -> void +Microsoft.AspNetCore.Mvc.CacheProfile.Location.get -> Microsoft.AspNetCore.Mvc.ResponseCacheLocation? +Microsoft.AspNetCore.Mvc.CacheProfile.Location.set -> void +Microsoft.AspNetCore.Mvc.CacheProfile.NoStore.get -> bool? +Microsoft.AspNetCore.Mvc.CacheProfile.NoStore.set -> void +Microsoft.AspNetCore.Mvc.ChallengeResult +Microsoft.AspNetCore.Mvc.ChallengeResult.ChallengeResult() -> void +Microsoft.AspNetCore.Mvc.ClientErrorData +Microsoft.AspNetCore.Mvc.ClientErrorData.ClientErrorData() -> void +Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.CompatibilityVersion.Latest = 2147483647 -> Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_0 = 0 -> Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_1 = 1 -> Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_2 = 2 -> Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_3_0 = 3 -> Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.ConflictObjectResult +Microsoft.AspNetCore.Mvc.ConflictResult +Microsoft.AspNetCore.Mvc.ConflictResult.ConflictResult() -> void +Microsoft.AspNetCore.Mvc.ConsumesAttribute +Microsoft.AspNetCore.Mvc.ContentResult +Microsoft.AspNetCore.Mvc.ContentResult.ContentResult() -> void +Microsoft.AspNetCore.Mvc.ContentResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.ContentResult.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.ControllerAttribute +Microsoft.AspNetCore.Mvc.ControllerAttribute.ControllerAttribute() -> void +Microsoft.AspNetCore.Mvc.ControllerBase +Microsoft.AspNetCore.Mvc.ControllerBase.ControllerBase() -> void +Microsoft.AspNetCore.Mvc.ControllerContext +Microsoft.AspNetCore.Mvc.ControllerContext.ControllerContext() -> void +Microsoft.AspNetCore.Mvc.ControllerContextAttribute +Microsoft.AspNetCore.Mvc.ControllerContextAttribute.ControllerContextAttribute() -> void +Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor +Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.ControllerActionDescriptor() -> void +Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider +Microsoft.AspNetCore.Mvc.Controllers.ControllerBoundPropertyDescriptor +Microsoft.AspNetCore.Mvc.Controllers.ControllerBoundPropertyDescriptor.ControllerBoundPropertyDescriptor() -> void +Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature +Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature.ControllerFeature() -> void +Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider +Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider.ControllerFeatureProvider() -> void +Microsoft.AspNetCore.Mvc.Controllers.ControllerParameterDescriptor +Microsoft.AspNetCore.Mvc.Controllers.ControllerParameterDescriptor.ControllerParameterDescriptor() -> void +Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator +Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider +Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory +Microsoft.AspNetCore.Mvc.Controllers.IControllerFactoryProvider +Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator +Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator.ServiceBasedControllerActivator() -> void +Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult +Microsoft.AspNetCore.Mvc.CreatedAtActionResult +Microsoft.AspNetCore.Mvc.CreatedAtRouteResult +Microsoft.AspNetCore.Mvc.CreatedResult +Microsoft.AspNetCore.Mvc.DefaultApiConventions +Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionResultEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionResultEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.EventData +Microsoft.AspNetCore.Mvc.Diagnostics.EventData.Enumerator +Microsoft.AspNetCore.Mvc.Diagnostics.EventData.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Mvc.Diagnostics.EventData.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Mvc.Diagnostics.EventData.EventData() -> void +Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute +Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute.DisableRequestSizeLimitAttribute() -> void +Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.EmptyResult +Microsoft.AspNetCore.Mvc.EmptyResult.EmptyResult() -> void +Microsoft.AspNetCore.Mvc.FileContentResult +Microsoft.AspNetCore.Mvc.FileResult +Microsoft.AspNetCore.Mvc.FileResult.EnableRangeProcessing.get -> bool +Microsoft.AspNetCore.Mvc.FileResult.EnableRangeProcessing.set -> void +Microsoft.AspNetCore.Mvc.FileResult.LastModified.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Mvc.FileResult.LastModified.set -> void +Microsoft.AspNetCore.Mvc.FileStreamResult +Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute +Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.ActionFilterAttribute() -> void +Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute +Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute.ExceptionFilterAttribute() -> void +Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.Filters.FilterCollection +Microsoft.AspNetCore.Mvc.Filters.FilterCollection.FilterCollection() -> void +Microsoft.AspNetCore.Mvc.Filters.FilterScope +Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute +Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute.ResultFilterAttribute() -> void +Microsoft.AspNetCore.Mvc.ForbidResult +Microsoft.AspNetCore.Mvc.ForbidResult.ForbidResult() -> void +Microsoft.AspNetCore.Mvc.FormatFilterAttribute +Microsoft.AspNetCore.Mvc.FormatFilterAttribute.FormatFilterAttribute() -> void +Microsoft.AspNetCore.Mvc.FormatFilterAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.FormatFilter +Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings +Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings.FormatterMappings() -> void +Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter.HttpNoContentOutputFormatter() -> void +Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter.TreatNullValueAsNoContent.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter.TreatNullValueAsNoContent.set -> void +Microsoft.AspNetCore.Mvc.Formatters.InputFormatter +Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.InputFormatter() -> void +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException.InputFormatterException() -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException.InputFormatterException(string! message) -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException.InputFormatterException(string! message, System.Exception! innerException) -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Abstractions) +Microsoft.AspNetCore.Mvc.Formatters.MediaType +Microsoft.AspNetCore.Mvc.Formatters.MediaType.Charset.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.AspNetCore.Mvc.Formatters.MediaType.GetParameter(Microsoft.Extensions.Primitives.StringSegment parameterName) -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.AspNetCore.Mvc.Formatters.MediaType.HasWildcard.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.MediaType.IsSubsetOf(Microsoft.AspNetCore.Mvc.Formatters.MediaType set) -> bool +Microsoft.AspNetCore.Mvc.Formatters.MediaType.MatchesAllSubTypes.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.MediaType.MatchesAllSubTypesWithoutSuffix.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.MediaType.MatchesAllTypes.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.MediaType.MediaType(Microsoft.Extensions.Primitives.StringSegment mediaType) -> void +Microsoft.AspNetCore.Mvc.Formatters.MediaType.SubType.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.AspNetCore.Mvc.Formatters.MediaType.SubTypeSuffix.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.AspNetCore.Mvc.Formatters.MediaType.SubTypeWithoutSuffix.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.AspNetCore.Mvc.Formatters.MediaType.Type.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection +Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection.MediaTypeCollection() -> void +Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality +Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality.MediaType.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality.MediaTypeSegmentWithQuality(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) -> void +Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality.Quality.get -> double +Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.OutputFormatter() -> void +Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter.StreamOutputFormatter() -> void +Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter.StringOutputFormatter() -> void +Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter +Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter +Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter.TextInputFormatter() -> void +Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter.TextOutputFormatter() -> void +Microsoft.AspNetCore.Mvc.FromBodyAttribute +Microsoft.AspNetCore.Mvc.FromBodyAttribute.EmptyBodyBehavior.get -> Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior +Microsoft.AspNetCore.Mvc.FromBodyAttribute.EmptyBodyBehavior.set -> void +Microsoft.AspNetCore.Mvc.FromBodyAttribute.FromBodyAttribute() -> void +Microsoft.AspNetCore.Mvc.FromFormAttribute +Microsoft.AspNetCore.Mvc.FromFormAttribute.FromFormAttribute() -> void +Microsoft.AspNetCore.Mvc.FromHeaderAttribute +Microsoft.AspNetCore.Mvc.FromHeaderAttribute.FromHeaderAttribute() -> void +Microsoft.AspNetCore.Mvc.FromQueryAttribute +Microsoft.AspNetCore.Mvc.FromQueryAttribute.FromQueryAttribute() -> void +Microsoft.AspNetCore.Mvc.FromRouteAttribute +Microsoft.AspNetCore.Mvc.FromRouteAttribute.FromRouteAttribute() -> void +Microsoft.AspNetCore.Mvc.FromServicesAttribute +Microsoft.AspNetCore.Mvc.FromServicesAttribute.FromServicesAttribute() -> void +Microsoft.AspNetCore.Mvc.HttpDeleteAttribute +Microsoft.AspNetCore.Mvc.HttpDeleteAttribute.HttpDeleteAttribute() -> void +Microsoft.AspNetCore.Mvc.HttpGetAttribute +Microsoft.AspNetCore.Mvc.HttpGetAttribute.HttpGetAttribute() -> void +Microsoft.AspNetCore.Mvc.HttpHeadAttribute +Microsoft.AspNetCore.Mvc.HttpHeadAttribute.HttpHeadAttribute() -> void +Microsoft.AspNetCore.Mvc.HttpOptionsAttribute +Microsoft.AspNetCore.Mvc.HttpOptionsAttribute.HttpOptionsAttribute() -> void +Microsoft.AspNetCore.Mvc.HttpPatchAttribute +Microsoft.AspNetCore.Mvc.HttpPatchAttribute.HttpPatchAttribute() -> void +Microsoft.AspNetCore.Mvc.HttpPostAttribute +Microsoft.AspNetCore.Mvc.HttpPostAttribute.HttpPostAttribute() -> void +Microsoft.AspNetCore.Mvc.HttpPutAttribute +Microsoft.AspNetCore.Mvc.HttpPutAttribute.HttpPutAttribute() -> void +Microsoft.AspNetCore.Mvc.IDesignTimeMvcBuilderConfiguration +Microsoft.AspNetCore.Mvc.IRequestFormLimitsPolicy +Microsoft.AspNetCore.Mvc.IRequestSizePolicy +Microsoft.AspNetCore.Mvc.Infrastructure.ActionContextAccessor +Microsoft.AspNetCore.Mvc.Infrastructure.ActionContextAccessor.ActionContextAccessor() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection +Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection.Version.get -> int +Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollectionProvider +Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollectionProvider.ActionDescriptorCollectionProvider() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultObjectValueAttribute +Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultObjectValueAttribute.ActionResultObjectValueAttribute() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultStatusCodeAttribute +Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultStatusCodeAttribute.ActionResultStatusCodeAttribute() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.AmbiguousActionException +Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch +Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch.IsValueSet.get -> bool +Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch.Value.get -> TValue +Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch.Value.set -> void +Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions.Version.get -> Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.Infrastructure.ContentResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector +Microsoft.AspNetCore.Mvc.Infrastructure.DefaultStatusCodeAttribute +Microsoft.AspNetCore.Mvc.Infrastructure.DefaultStatusCodeAttribute.DefaultStatusCodeAttribute(int statusCode) -> void +Microsoft.AspNetCore.Mvc.Infrastructure.DefaultStatusCodeAttribute.StatusCode.get -> int +Microsoft.AspNetCore.Mvc.Infrastructure.FileContentResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase +Microsoft.AspNetCore.Mvc.Infrastructure.FileStreamResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor +Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider +Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider +Microsoft.AspNetCore.Mvc.Infrastructure.IActionInvokerFactory +Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper +Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector +Microsoft.AspNetCore.Mvc.Infrastructure.IApiBehaviorMetadata +Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult +Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory +Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch +Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch.IsValueSet.get -> bool +Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult +Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory +Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory +Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor +Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor +Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult +Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.Infrastructure.LocalRedirectResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter +Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter.Order.get -> int +Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions +Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions.CompatibilityVersion.get -> Microsoft.AspNetCore.Mvc.CompatibilityVersion +Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions.CompatibilityVersion.set -> void +Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions.MvcCompatibilityOptions() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector +Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector.OutputFormatterSelector() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata.Exists.get -> bool +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata.Exists.set -> void +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata.FileMetadata() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata.LastModified.get -> System.DateTimeOffset +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata.LastModified.set -> void +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata.Length.get -> long +Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata.Length.set -> void +Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory +Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory.ProblemDetailsFactory() -> void +Microsoft.AspNetCore.Mvc.Infrastructure.RedirectResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToActionResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToPageResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToRouteResultExecutor +Microsoft.AspNetCore.Mvc.Infrastructure.VirtualFileResultExecutor +Microsoft.AspNetCore.Mvc.JsonOptions +Microsoft.AspNetCore.Mvc.JsonOptions.JsonOptions() -> void +Microsoft.AspNetCore.Mvc.JsonResult +Microsoft.AspNetCore.Mvc.JsonResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.JsonResult.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.LocalRedirectResult +Microsoft.AspNetCore.Mvc.LocalRedirectResult.Permanent.get -> bool +Microsoft.AspNetCore.Mvc.LocalRedirectResult.Permanent.set -> void +Microsoft.AspNetCore.Mvc.LocalRedirectResult.PreserveMethod.get -> bool +Microsoft.AspNetCore.Mvc.LocalRedirectResult.PreserveMethod.set -> void +Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute +Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.ModelBinderAttribute +Microsoft.AspNetCore.Mvc.ModelBinderAttribute.ModelBinderAttribute() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindNeverAttribute +Microsoft.AspNetCore.Mvc.ModelBinding.BindNeverAttribute.BindNeverAttribute() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindRequiredAttribute +Microsoft.AspNetCore.Mvc.ModelBinding.BindRequiredAttribute.BindRequiredAttribute() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinderProvider.ArrayModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinderProvider.BinderTypeModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinderProvider.ByteArrayModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinder.CancellationTokenModelBinder() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinderProvider.CancellationTokenModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider.CollectionModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider.ComplexTypeModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DecimalModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinderProvider.DictionaryModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DoubleModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatingPointTypeModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatingPointTypeModelBinderProvider.FloatingPointTypeModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinderProvider.FormCollectionModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinderProvider.FormFileModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinderProvider.HeaderModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinderProvider.KeyValuePairModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinder.ServicesModelBinder() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinderProvider.ServicesModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinderProvider.SimpleTypeModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior.Never = 1 -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior.Optional = 0 -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior.Required = 2 -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute +Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute.Behavior.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior +Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute.BindingBehaviorAttribute(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior behavior) -> void +Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.CompositeValueProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext +Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.DefaultModelBindingContext() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.DefaultPropertyFilterProvider.DefaultPropertyFilterProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider.EmptyModelMetadataProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProviderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProviderFactory.FormFileValueProviderFactory() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProviderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProviderFactory.FormValueProviderFactory() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.ICollectionModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProviderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProviderFactory.JQueryFormValueProviderFactory() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProviderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProviderFactory.JQueryQueryStringValueProviderFactory() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BindingMetadata() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.IsBindingAllowed.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.IsBindingAllowed.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.IsBindingRequired.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.IsBindingRequired.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.IsReadOnly.get -> bool? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.IsReadOnly.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext.Key.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.Key.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.DefaultModelBindingMessageProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.ConvertEmptyStringToNull.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.ConvertEmptyStringToNull.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DisplayMetadata() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.HasNonDefaultEditFormat.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.HasNonDefaultEditFormat.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.HideSurroundingHtml.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.HideSurroundingHtml.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.HtmlEncode.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.HtmlEncode.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.IsEnum.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.IsEnum.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.IsFlagsEnum.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.IsFlagsEnum.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.Order.get -> int +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.Order.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.ShowForDisplay.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.ShowForDisplay.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.ShowForEdit.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.ShowForEdit.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext.Key.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ExcludeBindingMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.MetadataDetailsProviderExtensions +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.HasValidators.get -> bool? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.HasValidators.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.IsRequired.get -> bool? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.IsRequired.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.ValidateChildren.get -> bool? +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.ValidateChildren.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.ValidationMetadata() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext.Key.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext.ModelBinderFactoryContext() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderExtensions +Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProviderExtensions +Microsoft.AspNetCore.Mvc.ModelBinding.ModelNames +Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator +Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder +Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer +Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProviderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProviderFactory.QueryStringValueProviderFactory() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider +Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProviderFactory +Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProviderFactory.RouteValueProviderFactory() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeException +Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter +Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter.Order.get -> int +Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter.Order.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter.UnsupportedContentTypeFilter() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorCache +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorCache.ClientValidatorCache() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeClientModelValidatorProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeModelValidatorProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IMetadataBasedModelValidatorProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderExtensions +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidateNeverAttribute +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidateNeverAttribute.ShouldValidateEntry(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry entry, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry parentEntry) -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidateNeverAttribute.ValidateNeverAttribute() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.AllowShortCircuitingValidationWhenNoValidatorsArePresent.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.AllowShortCircuitingValidationWhenNoValidatorsArePresent.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.MaxValidationDepth.get -> int? +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.MaxValidationDepth.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.StateManager +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.StateManager.Dispose() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidateComplexTypesIfChildValidationFails.get -> bool +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidateComplexTypesIfChildValidationFails.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache +Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache.ValidatorCache() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryExtensions +Microsoft.AspNetCore.Mvc.ModelMetadataTypeAttribute +Microsoft.AspNetCore.Mvc.MvcOptions +Microsoft.AspNetCore.Mvc.MvcOptions.AllowEmptyInputInBodyModelBinding.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.AllowEmptyInputInBodyModelBinding.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.EnableEndpointRouting.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.EnableEndpointRouting.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.MaxIAsyncEnumerableBufferLimit.get -> int +Microsoft.AspNetCore.Mvc.MvcOptions.MaxIAsyncEnumerableBufferLimit.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.MaxModelBindingCollectionSize.get -> int +Microsoft.AspNetCore.Mvc.MvcOptions.MaxModelBindingCollectionSize.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.MaxModelBindingRecursionDepth.get -> int +Microsoft.AspNetCore.Mvc.MvcOptions.MaxModelBindingRecursionDepth.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.MaxModelValidationErrors.get -> int +Microsoft.AspNetCore.Mvc.MvcOptions.MaxModelValidationErrors.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.MaxValidationDepth.get -> int? +Microsoft.AspNetCore.Mvc.MvcOptions.MaxValidationDepth.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.MvcOptions() -> void +Microsoft.AspNetCore.Mvc.MvcOptions.RequireHttpsPermanent.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.RequireHttpsPermanent.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.RespectBrowserAcceptHeader.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.RespectBrowserAcceptHeader.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.ReturnHttpNotAcceptable.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.ReturnHttpNotAcceptable.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.SslPort.get -> int? +Microsoft.AspNetCore.Mvc.MvcOptions.SslPort.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressAsyncSuffixInActionNames.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressAsyncSuffixInActionNames.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressInputFormatterBuffering.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressInputFormatterBuffering.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressOutputFormatterBuffering.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.SuppressOutputFormatterBuffering.set -> void +Microsoft.AspNetCore.Mvc.MvcOptions.ValidateComplexTypesIfChildValidationFails.get -> bool +Microsoft.AspNetCore.Mvc.MvcOptions.ValidateComplexTypesIfChildValidationFails.set -> void +Microsoft.AspNetCore.Mvc.NoContentResult +Microsoft.AspNetCore.Mvc.NoContentResult.NoContentResult() -> void +Microsoft.AspNetCore.Mvc.NonActionAttribute +Microsoft.AspNetCore.Mvc.NonActionAttribute.NonActionAttribute() -> void +Microsoft.AspNetCore.Mvc.NonControllerAttribute +Microsoft.AspNetCore.Mvc.NonControllerAttribute.NonControllerAttribute() -> void +Microsoft.AspNetCore.Mvc.NonViewComponentAttribute +Microsoft.AspNetCore.Mvc.NonViewComponentAttribute.NonViewComponentAttribute() -> void +Microsoft.AspNetCore.Mvc.NotFoundObjectResult +Microsoft.AspNetCore.Mvc.NotFoundResult +Microsoft.AspNetCore.Mvc.NotFoundResult.NotFoundResult() -> void +Microsoft.AspNetCore.Mvc.ObjectResult +Microsoft.AspNetCore.Mvc.ObjectResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.ObjectResult.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.OkObjectResult +Microsoft.AspNetCore.Mvc.OkResult +Microsoft.AspNetCore.Mvc.OkResult.OkResult() -> void +Microsoft.AspNetCore.Mvc.PhysicalFileResult +Microsoft.AspNetCore.Mvc.ProblemDetails +Microsoft.AspNetCore.Mvc.ProblemDetails.ProblemDetails() -> void +Microsoft.AspNetCore.Mvc.ProblemDetails.Status.get -> int? +Microsoft.AspNetCore.Mvc.ProblemDetails.Status.set -> void +Microsoft.AspNetCore.Mvc.ProducesAttribute +Microsoft.AspNetCore.Mvc.ProducesAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.ProducesAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.ProducesAttribute.StatusCode.get -> int +Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute +Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute.ProducesDefaultResponseTypeAttribute() -> void +Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute.StatusCode.get -> int +Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute +Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute +Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute.ProducesResponseTypeAttribute(int statusCode) -> void +Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute.StatusCode.get -> int +Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.RedirectResult +Microsoft.AspNetCore.Mvc.RedirectResult.Permanent.get -> bool +Microsoft.AspNetCore.Mvc.RedirectResult.Permanent.set -> void +Microsoft.AspNetCore.Mvc.RedirectResult.PreserveMethod.get -> bool +Microsoft.AspNetCore.Mvc.RedirectResult.PreserveMethod.set -> void +Microsoft.AspNetCore.Mvc.RedirectToActionResult +Microsoft.AspNetCore.Mvc.RedirectToActionResult.Permanent.get -> bool +Microsoft.AspNetCore.Mvc.RedirectToActionResult.Permanent.set -> void +Microsoft.AspNetCore.Mvc.RedirectToActionResult.PreserveMethod.get -> bool +Microsoft.AspNetCore.Mvc.RedirectToActionResult.PreserveMethod.set -> void +Microsoft.AspNetCore.Mvc.RedirectToPageResult +Microsoft.AspNetCore.Mvc.RedirectToPageResult.Permanent.get -> bool +Microsoft.AspNetCore.Mvc.RedirectToPageResult.Permanent.set -> void +Microsoft.AspNetCore.Mvc.RedirectToPageResult.PreserveMethod.get -> bool +Microsoft.AspNetCore.Mvc.RedirectToPageResult.PreserveMethod.set -> void +Microsoft.AspNetCore.Mvc.RedirectToRouteResult +Microsoft.AspNetCore.Mvc.RedirectToRouteResult.Permanent.get -> bool +Microsoft.AspNetCore.Mvc.RedirectToRouteResult.Permanent.set -> void +Microsoft.AspNetCore.Mvc.RedirectToRouteResult.PreserveMethod.get -> bool +Microsoft.AspNetCore.Mvc.RedirectToRouteResult.PreserveMethod.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.BufferBody.get -> bool +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.BufferBody.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.BufferBodyLengthLimit.get -> long +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.BufferBodyLengthLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.KeyLengthLimit.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.KeyLengthLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MemoryBufferThreshold.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MemoryBufferThreshold.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartBodyLengthLimit.get -> long +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartBodyLengthLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartBoundaryLengthLimit.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartBoundaryLengthLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartHeadersCountLimit.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartHeadersCountLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartHeadersLengthLimit.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.MultipartHeadersLengthLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.RequestFormLimitsAttribute() -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.ValueCountLimit.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.ValueCountLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.ValueLengthLimit.get -> int +Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.ValueLengthLimit.set -> void +Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute +Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute.RequestSizeLimitAttribute(long bytes) -> void +Microsoft.AspNetCore.Mvc.RequireHttpsAttribute +Microsoft.AspNetCore.Mvc.RequireHttpsAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.RequireHttpsAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.RequireHttpsAttribute.Permanent.get -> bool +Microsoft.AspNetCore.Mvc.RequireHttpsAttribute.Permanent.set -> void +Microsoft.AspNetCore.Mvc.RequireHttpsAttribute.RequireHttpsAttribute() -> void +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.Duration.get -> int +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.Duration.set -> void +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.Location.get -> Microsoft.AspNetCore.Mvc.ResponseCacheLocation +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.Location.set -> void +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.NoStore.get -> bool +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.NoStore.set -> void +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.ResponseCacheAttribute() -> void +Microsoft.AspNetCore.Mvc.ResponseCacheLocation +Microsoft.AspNetCore.Mvc.ResponseCacheLocation.Any = 0 -> Microsoft.AspNetCore.Mvc.ResponseCacheLocation +Microsoft.AspNetCore.Mvc.ResponseCacheLocation.Client = 1 -> Microsoft.AspNetCore.Mvc.ResponseCacheLocation +Microsoft.AspNetCore.Mvc.ResponseCacheLocation.None = 2 -> Microsoft.AspNetCore.Mvc.ResponseCacheLocation +Microsoft.AspNetCore.Mvc.RouteAttribute +Microsoft.AspNetCore.Mvc.RouteAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.RouteAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer +Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer.DynamicRouteValueTransformer() -> void +Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute +Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider +Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider +Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Order.get -> int? +Microsoft.AspNetCore.Mvc.Routing.IRouteValueProvider +Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory +Microsoft.AspNetCore.Mvc.Routing.KnownRouteValueConstraint +Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute +Microsoft.AspNetCore.Mvc.Routing.UrlHelper +Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase +Microsoft.AspNetCore.Mvc.Routing.UrlHelperFactory +Microsoft.AspNetCore.Mvc.Routing.UrlHelperFactory.UrlHelperFactory() -> void +Microsoft.AspNetCore.Mvc.SerializableError +Microsoft.AspNetCore.Mvc.SerializableError.SerializableError() -> void +Microsoft.AspNetCore.Mvc.ServiceFilterAttribute +Microsoft.AspNetCore.Mvc.ServiceFilterAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ServiceFilterAttribute.IsReusable.set -> void +Microsoft.AspNetCore.Mvc.ServiceFilterAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.ServiceFilterAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.SignInResult +Microsoft.AspNetCore.Mvc.SignOutResult +Microsoft.AspNetCore.Mvc.SignOutResult.SignOutResult() -> void +Microsoft.AspNetCore.Mvc.StatusCodeResult +Microsoft.AspNetCore.Mvc.StatusCodeResult.StatusCode.get -> int +Microsoft.AspNetCore.Mvc.StatusCodeResult.StatusCodeResult(int statusCode) -> void +Microsoft.AspNetCore.Mvc.TypeFilterAttribute +Microsoft.AspNetCore.Mvc.TypeFilterAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.TypeFilterAttribute.IsReusable.set -> void +Microsoft.AspNetCore.Mvc.TypeFilterAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.TypeFilterAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.UnauthorizedObjectResult +Microsoft.AspNetCore.Mvc.UnauthorizedResult +Microsoft.AspNetCore.Mvc.UnauthorizedResult.UnauthorizedResult() -> void +Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult +Microsoft.AspNetCore.Mvc.UnprocessableEntityResult +Microsoft.AspNetCore.Mvc.UnprocessableEntityResult.UnprocessableEntityResult() -> void +Microsoft.AspNetCore.Mvc.UnsupportedMediaTypeResult +Microsoft.AspNetCore.Mvc.UnsupportedMediaTypeResult.UnsupportedMediaTypeResult() -> void +Microsoft.AspNetCore.Mvc.UrlHelperExtensions +Microsoft.AspNetCore.Mvc.ValidationProblemDetails +Microsoft.AspNetCore.Mvc.ValidationProblemDetails.ValidationProblemDetails() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult +Microsoft.AspNetCore.Mvc.VirtualFileResult +Microsoft.AspNetCore.Routing.ControllerLinkGeneratorExtensions +Microsoft.AspNetCore.Routing.PageLinkGeneratorExtensions +Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions +Microsoft.Extensions.DependencyInjection.IMvcBuilder +Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions +abstract Microsoft.AspNetCore.Mvc.Diagnostics.EventData.Count.get -> int +const Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.BufferSize = 65536 -> int +override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.EnterNestedScope() -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope +override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ExitNestedScope() -> void +override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.IsTopLevelObject.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.IsTopLevelObject.set -> void +override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.Result.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult +override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.Result.set -> void +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ConvertEmptyStringToNull.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.HasNonDefaultEditFormat.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.HasValidators.get -> bool? +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.HideSurroundingHtml.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.HtmlEncode.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.IsBindingAllowed.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.IsBindingRequired.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.IsEnum.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.IsFlagsEnum.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.IsReadOnly.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.IsRequired.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.Order.get -> int +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ShowForDisplay.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ShowForEdit.get -> bool +override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ValidateChildren.get -> bool +static readonly Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint.HttpMethodConstraintOrder -> int +static readonly Microsoft.AspNetCore.Mvc.ConsumesAttribute.ConsumesActionConstraintOrder -> int +static readonly Microsoft.AspNetCore.Mvc.Filters.FilterScope.Action -> int +static readonly Microsoft.AspNetCore.Mvc.Filters.FilterScope.Controller -> int +static readonly Microsoft.AspNetCore.Mvc.Filters.FilterScope.First -> int +static readonly Microsoft.AspNetCore.Mvc.Filters.FilterScope.Global -> int +static readonly Microsoft.AspNetCore.Mvc.Filters.FilterScope.Last -> int +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidateNode() -> bool +virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.VisitSimpleType() -> bool +~Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder.Add(System.Action convention) -> void +~Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.AcceptVerbsAttribute(params string[] methods) -> void +~Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.AcceptVerbsAttribute(string method) -> void +~Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.HttpMethods.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.Route.get -> string +~Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute.Route.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.AcceptedAtActionResult(string actionName, string controllerName, object routeValues, object value) -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.ActionName.get -> string +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.ActionName.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.ControllerName.get -> string +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.ControllerName.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.AcceptedAtRouteResult(object routeValues, object value) -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.AcceptedAtRouteResult(string routeName, object routeValues, object value) -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.RouteName.get -> string +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.RouteName.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.AcceptedResult.AcceptedResult(System.Uri locationUri, object value) -> void +~Microsoft.AspNetCore.Mvc.AcceptedResult.AcceptedResult(string location, object value) -> void +~Microsoft.AspNetCore.Mvc.AcceptedResult.Location.get -> string +~Microsoft.AspNetCore.Mvc.AcceptedResult.Location.set -> void +~Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute.Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) -> bool +~Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint.HttpMethodActionConstraint(System.Collections.Generic.IEnumerable httpMethods) -> void +~Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint.HttpMethods.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ActionNameAttribute.ActionNameAttribute(string name) -> void +~Microsoft.AspNetCore.Mvc.ActionNameAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.ActionResult.ActionResult(Microsoft.AspNetCore.Mvc.ActionResult result) -> void +~Microsoft.AspNetCore.Mvc.ActionResult.Result.get -> Microsoft.AspNetCore.Mvc.ActionResult +~Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.ClientErrorMapping.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.InvalidModelStateResponseFactory.get -> System.Func +~Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.InvalidModelStateResponseFactory.set -> void +~Microsoft.AspNetCore.Mvc.ApiConventionMethodAttribute.ApiConventionMethodAttribute(System.Type conventionType, string methodName) -> void +~Microsoft.AspNetCore.Mvc.ApiConventionMethodAttribute.ConventionType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ApiConventionTypeAttribute.ApiConventionTypeAttribute(System.Type conventionType) -> void +~Microsoft.AspNetCore.Mvc.ApiConventionTypeAttribute.ConventionType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ApiDescriptionActionData.GroupName.get -> string +~Microsoft.AspNetCore.Mvc.ApiDescriptionActionData.GroupName.set -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionResult.ApiConventionResult(System.Collections.Generic.IReadOnlyList responseMetadataProviders) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionResult.ResponseMetadataProviders.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupNameProvider.GroupName.get -> string +~Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider.GetSupportedContentTypes(string contentType, System.Type objectType) -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) -> void +~Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider.GetSupportedContentTypes(string contentType, System.Type objectType) -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute.GroupName.get -> string +~Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute.GroupName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.ActionMethod.get -> System.Reflection.MethodInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.ActionModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.ActionModel(System.Reflection.MethodInfo actionMethod, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.ActionName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.ActionName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.ApiExplorer.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.ApiExplorer.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.Controller.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.Controller.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.DisplayName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.Filters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.Parameters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.RouteParameterTransformer.get -> Microsoft.AspNetCore.Routing.IOutboundParameterTransformer +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.RouteParameterTransformer.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.RouteValues.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel.Selectors.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApiConventionApplicationModelConvention.ApiConventionApplicationModelConvention(Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute defaultErrorResponseType) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApiConventionApplicationModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApiConventionApplicationModelConvention.DefaultErrorResponseType.get -> Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel.ApiExplorerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel.GroupName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel.GroupName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApiVisibilityConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel.ApiExplorer.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel.ApiExplorer.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel.Controllers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel.Filters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext.ApplicationModelProviderContext(System.Collections.Generic.IEnumerable controllerTypes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext.ControllerTypes.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext.Result.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.Attribute.get -> Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider +~Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.AttributeRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.AttributeRouteModel(Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider templateProvider) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.Name.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.Name.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.Template.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.Template.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ClientErrorResultFilterConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ConsumesConstraintForFormFileParameterConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.Actions.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ApiExplorer.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ApiExplorer.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.Application.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.Application.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ControllerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ControllerModel(System.Reflection.TypeInfo controllerType, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ControllerName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ControllerName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ControllerProperties.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.ControllerType.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.DisplayName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.Filters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.RouteValues.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel.Selectors.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel.ApiExplorer.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel.ApiExplorer.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel application) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel.BindingInfo.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel.BindingInfo.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo.get -> System.Reflection.MemberInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Name.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.IControllerModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel controller) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel.Filters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase parameter) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel parameter) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.InferParameterBindingInfoConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.InferParameterBindingInfoConvention.InferParameterBindingInfoConvention(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.InvalidModelStateFilterConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.Action.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.Action.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.DisplayName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.ParameterInfo.get -> System.Reflection.ParameterInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.ParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.ParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.ParameterName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.ParameterName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.BindingInfo.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.BindingInfo.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.Name.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.Name.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.ParameterModelBase(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.ParameterModelBase(System.Type parameterType, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.ParameterType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.Controller.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.Controller.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.PropertyInfo.get -> System.Reflection.PropertyInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.PropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.PropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.PropertyName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel.PropertyName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.RouteTokenTransformerConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.RouteTokenTransformerConvention.RouteTokenTransformerConvention(Microsoft.AspNetCore.Routing.IOutboundParameterTransformer parameterTransformer) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel.ActionConstraints.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel.AttributeRouteModel.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel.AttributeRouteModel.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel.EndpointMetadata.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel.SelectorModel(Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute.ApplicationPartAttribute(string assemblyName) -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute.AssemblyName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.ApplicationParts.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.FeatureProviders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart.Assembly.get -> System.Reflection.Assembly +~Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart.AssemblyPart(System.Reflection.Assembly assembly) -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart.Types.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider.PopulateFeature(System.Collections.Generic.IEnumerable parts, TFeature feature) -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationPartTypeProvider.Types.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ApplicationParts.ICompilationReferencesProvider.GetReferencePaths() -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute.GetFactoryType() -> System.Type +~Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute.ProvideApplicationPartFactoryAttribute(System.Type factoryType) -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute.ProvideApplicationPartFactoryAttribute(string factoryTypeName) -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute.AssemblyFileName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute.RelatedAssemblyAttribute(string assemblyFileName) -> void +~Microsoft.AspNetCore.Mvc.AreaAttribute.AreaAttribute(string areaName) -> void +~Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.AuthorizeData.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.AuthorizeFilter(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) -> void +~Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.AuthorizeFilter(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authorizeData) -> void +~Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.AuthorizeFilter(System.Collections.Generic.IEnumerable authorizeData) -> void +~Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.AuthorizeFilter(string policy) -> void +~Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.Policy.get -> Microsoft.AspNetCore.Authorization.AuthorizationPolicy +~Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.PolicyProvider.get -> Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider +~Microsoft.AspNetCore.Mvc.BadRequestObjectResult.BadRequestObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~Microsoft.AspNetCore.Mvc.BadRequestObjectResult.BadRequestObjectResult(object error) -> void +~Microsoft.AspNetCore.Mvc.BindAttribute.BindAttribute(params string[] include) -> void +~Microsoft.AspNetCore.Mvc.BindAttribute.Include.get -> string[] +~Microsoft.AspNetCore.Mvc.BindAttribute.Prefix.get -> string +~Microsoft.AspNetCore.Mvc.BindAttribute.Prefix.set -> void +~Microsoft.AspNetCore.Mvc.BindAttribute.PropertyFilter.get -> System.Func +~Microsoft.AspNetCore.Mvc.BindPropertyAttribute.BinderType.get -> System.Type +~Microsoft.AspNetCore.Mvc.BindPropertyAttribute.BinderType.set -> void +~Microsoft.AspNetCore.Mvc.BindPropertyAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.BindPropertyAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.CacheProfile.VaryByHeader.get -> string +~Microsoft.AspNetCore.Mvc.CacheProfile.VaryByHeader.set -> void +~Microsoft.AspNetCore.Mvc.CacheProfile.VaryByQueryKeys.get -> string[] +~Microsoft.AspNetCore.Mvc.CacheProfile.VaryByQueryKeys.set -> void +~Microsoft.AspNetCore.Mvc.ChallengeResult.AuthenticationSchemes.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ChallengeResult.AuthenticationSchemes.set -> void +~Microsoft.AspNetCore.Mvc.ChallengeResult.ChallengeResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.ChallengeResult.ChallengeResult(System.Collections.Generic.IList authenticationSchemes) -> void +~Microsoft.AspNetCore.Mvc.ChallengeResult.ChallengeResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.ChallengeResult.ChallengeResult(string authenticationScheme) -> void +~Microsoft.AspNetCore.Mvc.ChallengeResult.ChallengeResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.ChallengeResult.Properties.get -> Microsoft.AspNetCore.Authentication.AuthenticationProperties +~Microsoft.AspNetCore.Mvc.ChallengeResult.Properties.set -> void +~Microsoft.AspNetCore.Mvc.ClientErrorData.Link.get -> string +~Microsoft.AspNetCore.Mvc.ClientErrorData.Link.set -> void +~Microsoft.AspNetCore.Mvc.ClientErrorData.Title.get -> string +~Microsoft.AspNetCore.Mvc.ClientErrorData.Title.set -> void +~Microsoft.AspNetCore.Mvc.ConflictObjectResult.ConflictObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~Microsoft.AspNetCore.Mvc.ConflictObjectResult.ConflictObjectResult(object error) -> void +~Microsoft.AspNetCore.Mvc.ConsumesAttribute.Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) -> bool +~Microsoft.AspNetCore.Mvc.ConsumesAttribute.ConsumesAttribute(string contentType, params string[] otherContentTypes) -> void +~Microsoft.AspNetCore.Mvc.ConsumesAttribute.ContentTypes.get -> Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection +~Microsoft.AspNetCore.Mvc.ConsumesAttribute.ContentTypes.set -> void +~Microsoft.AspNetCore.Mvc.ConsumesAttribute.OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) -> void +~Microsoft.AspNetCore.Mvc.ConsumesAttribute.OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context) -> void +~Microsoft.AspNetCore.Mvc.ConsumesAttribute.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) -> void +~Microsoft.AspNetCore.Mvc.ContentResult.Content.get -> string +~Microsoft.AspNetCore.Mvc.ContentResult.Content.set -> void +~Microsoft.AspNetCore.Mvc.ContentResult.ContentType.get -> string +~Microsoft.AspNetCore.Mvc.ContentResult.ContentType.set -> void +~Microsoft.AspNetCore.Mvc.ControllerBase.ControllerContext.get -> Microsoft.AspNetCore.Mvc.ControllerContext +~Microsoft.AspNetCore.Mvc.ControllerBase.ControllerContext.set -> void +~Microsoft.AspNetCore.Mvc.ControllerBase.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.ControllerBase.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +~Microsoft.AspNetCore.Mvc.ControllerBase.MetadataProvider.set -> void +~Microsoft.AspNetCore.Mvc.ControllerBase.ModelBinderFactory.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory +~Microsoft.AspNetCore.Mvc.ControllerBase.ModelBinderFactory.set -> void +~Microsoft.AspNetCore.Mvc.ControllerBase.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +~Microsoft.AspNetCore.Mvc.ControllerBase.ObjectValidator.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator +~Microsoft.AspNetCore.Mvc.ControllerBase.ObjectValidator.set -> void +~Microsoft.AspNetCore.Mvc.ControllerBase.ProblemDetailsFactory.get -> Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory +~Microsoft.AspNetCore.Mvc.ControllerBase.ProblemDetailsFactory.set -> void +~Microsoft.AspNetCore.Mvc.ControllerBase.Request.get -> Microsoft.AspNetCore.Http.HttpRequest +~Microsoft.AspNetCore.Mvc.ControllerBase.Response.get -> Microsoft.AspNetCore.Http.HttpResponse +~Microsoft.AspNetCore.Mvc.ControllerBase.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData +~Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(TModel model, string prefix, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(TModel model, string prefix, params System.Linq.Expressions.Expression>[] includeExpressions) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ControllerBase.Url.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.ControllerBase.Url.set -> void +~Microsoft.AspNetCore.Mvc.ControllerBase.User.get -> System.Security.Claims.ClaimsPrincipal +~Microsoft.AspNetCore.Mvc.ControllerContext.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor +~Microsoft.AspNetCore.Mvc.ControllerContext.ActionDescriptor.set -> void +~Microsoft.AspNetCore.Mvc.ControllerContext.ControllerContext(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.ControllerName.get -> string +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.ControllerName.set -> void +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.ControllerTypeInfo.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.ControllerTypeInfo.set -> void +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.MethodInfo.get -> System.Reflection.MethodInfo +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.MethodInfo.set -> void +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider.ControllerActivatorProvider(Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator controllerActivator) -> void +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider.CreateActivator(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider.CreateReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.Controllers.ControllerBoundPropertyDescriptor.PropertyInfo.get -> System.Reflection.PropertyInfo +~Microsoft.AspNetCore.Mvc.Controllers.ControllerBoundPropertyDescriptor.PropertyInfo.set -> void +~Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature.Controllers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider.PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature feature) -> void +~Microsoft.AspNetCore.Mvc.Controllers.ControllerParameterDescriptor.ParameterInfo.get -> System.Reflection.ParameterInfo +~Microsoft.AspNetCore.Mvc.Controllers.ControllerParameterDescriptor.ParameterInfo.set -> void +~Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator.Create(Microsoft.AspNetCore.Mvc.ControllerContext context) -> object +~Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator.Release(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) -> void +~Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider.CreateActivator(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider.CreateReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory.CreateController(Microsoft.AspNetCore.Mvc.ControllerContext context) -> object +~Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory.ReleaseController(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) -> void +~Microsoft.AspNetCore.Mvc.Controllers.IControllerFactoryProvider.CreateControllerFactory(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.Controllers.IControllerFactoryProvider.CreateControllerReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator.Create(Microsoft.AspNetCore.Mvc.ControllerContext actionContext) -> object +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.ActionName.get -> string +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.ActionName.set -> void +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.ControllerName.get -> string +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.ControllerName.set -> void +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.CreatedAtActionResult(string actionName, string controllerName, object routeValues, object value) -> void +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.CreatedAtActionResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.CreatedAtRouteResult(object routeValues, object value) -> void +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.CreatedAtRouteResult(string routeName, object routeValues, object value) -> void +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.RouteName.get -> string +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.RouteName.set -> void +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.CreatedResult.CreatedResult(System.Uri location, object value) -> void +~Microsoft.AspNetCore.Mvc.CreatedResult.CreatedResult(string location, object value) -> void +~Microsoft.AspNetCore.Mvc.CreatedResult.Location.get -> string +~Microsoft.AspNetCore.Mvc.CreatedResult.Location.set -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData.AfterActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData.ActionExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData.AfterActionFilterOnActionExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData.ActionExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData.AfterActionFilterOnActionExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData.ActionExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData.AfterActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionResultEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionResultEventData.AfterActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionResultEventData.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData.AfterAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData.AuthorizationContext.get -> Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData.AfterControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, object controller, Microsoft.AspNetCore.Mvc.IActionResult result) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData.Arguments.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData.Controller.get -> object +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData.AfterExceptionFilterOnExceptionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData.ExceptionContext.get -> Microsoft.AspNetCore.Mvc.Filters.ExceptionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData.AfterResourceFilterOnResourceExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData.ResourceExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData.AfterResourceFilterOnResourceExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData.ResourceExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData.AfterResourceFilterOnResourceExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData.ResourceExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData.AfterResultFilterOnResultExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData.ResultExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData.AfterResultFilterOnResultExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData.ResultExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData.AfterResultFilterOnResultExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData.ResultExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData.BeforeActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData.ActionExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData.BeforeActionFilterOnActionExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData.ActionExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData.BeforeActionFilterOnActionExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData.ActionExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData.BeforeActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionResultEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionResultEventData.BeforeActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionResultEventData.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData.AuthorizationContext.get -> Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData.BeforeAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData.ActionArguments.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData.BeforeControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary actionArguments, object controller) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData.Controller.get -> object +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException.BeforeExceptionFilterOnException(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException.ExceptionContext.get -> Microsoft.AspNetCore.Mvc.Filters.ExceptionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData.BeforeResourceFilterOnResourceExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData.ResourceExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData.BeforeResourceFilterOnResourceExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData.ResourceExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData.BeforeResourceFilterOnResourceExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData.ResourceExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData.BeforeResultFilterOnResultExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData.ResultExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData.BeforeResultFilterOnResultExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData.ResultExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData.BeforeResultFilterOnResultExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData.ResultExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.EventData.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +~Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.FileContentResult.FileContentResult(byte[] fileContents, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> void +~Microsoft.AspNetCore.Mvc.FileContentResult.FileContentResult(byte[] fileContents, string contentType) -> void +~Microsoft.AspNetCore.Mvc.FileContentResult.FileContents.get -> byte[] +~Microsoft.AspNetCore.Mvc.FileContentResult.FileContents.set -> void +~Microsoft.AspNetCore.Mvc.FileResult.ContentType.get -> string +~Microsoft.AspNetCore.Mvc.FileResult.EntityTag.get -> Microsoft.Net.Http.Headers.EntityTagHeaderValue +~Microsoft.AspNetCore.Mvc.FileResult.EntityTag.set -> void +~Microsoft.AspNetCore.Mvc.FileResult.FileDownloadName.get -> string +~Microsoft.AspNetCore.Mvc.FileResult.FileDownloadName.set -> void +~Microsoft.AspNetCore.Mvc.FileResult.FileResult(string contentType) -> void +~Microsoft.AspNetCore.Mvc.FileStreamResult.FileStream.get -> System.IO.Stream +~Microsoft.AspNetCore.Mvc.FileStreamResult.FileStream.set -> void +~Microsoft.AspNetCore.Mvc.FileStreamResult.FileStreamResult(System.IO.Stream fileStream, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> void +~Microsoft.AspNetCore.Mvc.FileStreamResult.FileStreamResult(System.IO.Stream fileStream, string contentType) -> void +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.Add(System.Type filterType) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.Add(System.Type filterType, int order) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.Add() -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.Add(int order) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.AddService(System.Type filterType) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.AddService(System.Type filterType, int order) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.AddService() -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Filters.FilterCollection.AddService(int order) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.ForbidResult.AuthenticationSchemes.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ForbidResult.AuthenticationSchemes.set -> void +~Microsoft.AspNetCore.Mvc.ForbidResult.ForbidResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.ForbidResult.ForbidResult(System.Collections.Generic.IList authenticationSchemes) -> void +~Microsoft.AspNetCore.Mvc.ForbidResult.ForbidResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.ForbidResult.ForbidResult(string authenticationScheme) -> void +~Microsoft.AspNetCore.Mvc.ForbidResult.ForbidResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.ForbidResult.Properties.get -> Microsoft.AspNetCore.Authentication.AuthenticationProperties +~Microsoft.AspNetCore.Mvc.ForbidResult.Properties.set -> void +~Microsoft.AspNetCore.Mvc.FormatFilterAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Formatters.FormatFilter.FormatFilter(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Formatters.FormatFilter.OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) -> void +~Microsoft.AspNetCore.Mvc.Formatters.FormatFilter.OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context) -> void +~Microsoft.AspNetCore.Mvc.Formatters.FormatFilter.OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) -> void +~Microsoft.AspNetCore.Mvc.Formatters.FormatFilter.OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) -> void +~Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings.ClearMediaTypeMappingForFormat(string format) -> bool +~Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings.GetMediaTypeMappingForFormat(string format) -> string +~Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings.SetMediaTypeMappingForFormat(string format, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> void +~Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings.SetMediaTypeMappingForFormat(string format, string contentType) -> void +~Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter.CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) -> bool +~Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter.WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.SupportedMediaTypes.get -> Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection +~Microsoft.AspNetCore.Mvc.Formatters.MediaType.Encoding.get -> System.Text.Encoding +~Microsoft.AspNetCore.Mvc.Formatters.MediaType.GetParameter(string parameterName) -> Microsoft.Extensions.Primitives.StringSegment +~Microsoft.AspNetCore.Mvc.Formatters.MediaType.MediaType(string mediaType) -> void +~Microsoft.AspNetCore.Mvc.Formatters.MediaType.MediaType(string mediaType, int offset, int? length) -> void +~Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection.Add(Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) -> void +~Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection.Insert(int index, Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) -> void +~Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection.Remove(Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) -> bool +~Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.SupportedMediaTypes.get -> Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection +~Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter.CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) -> bool +~Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter.WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter.SerializerOptions.get -> System.Text.Json.JsonSerializerOptions +~Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter.SystemTextJsonInputFormatter(Microsoft.AspNetCore.Mvc.JsonOptions options, Microsoft.Extensions.Logging.ILogger logger) -> void +~Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.SerializerOptions.get -> System.Text.Json.JsonSerializerOptions +~Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.SystemTextJsonOutputFormatter(System.Text.Json.JsonSerializerOptions jsonSerializerOptions) -> void +~Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter.SelectCharacterEncoding(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) -> System.Text.Encoding +~Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter.SupportedEncodings.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter.SupportedEncodings.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.FromBodyAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.FromFormAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.FromFormAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.FromFormAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.FromHeaderAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.FromHeaderAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.FromHeaderAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.FromQueryAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.FromQueryAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.FromQueryAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.FromRouteAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.FromRouteAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.FromRouteAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.FromServicesAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.HttpDeleteAttribute.HttpDeleteAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.HttpGetAttribute.HttpGetAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.HttpHeadAttribute.HttpHeadAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.HttpOptionsAttribute.HttpOptionsAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.HttpPatchAttribute.HttpPatchAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.HttpPostAttribute.HttpPostAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.HttpPutAttribute.HttpPutAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.IDesignTimeMvcBuilderConfiguration.ConfigureMvc(Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ActionContextAccessor.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Infrastructure.ActionContextAccessor.ActionContext.set -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection.ActionDescriptorCollection(System.Collections.Generic.IReadOnlyList items, int version) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection.Items.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.Infrastructure.AmbiguousActionException.AmbiguousActionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.AmbiguousActionException.AmbiguousActionException(string message) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch.CompatibilitySwitch(string name) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch.CompatibilitySwitch(string name, TValue initialValue) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch.Name.get -> string +~Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions +~Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions.ConfigureCompatibilityOptions(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions compatibilityOptions) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ContentResultExecutor.ContentResultExecutor(Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory httpResponseStreamWriterFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector.DefaultOutputFormatterSelector(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.FileContentResultExecutor.FileContentResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.FileResultExecutorBase(Microsoft.Extensions.Logging.ILogger logger) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Mvc.Infrastructure.FileStreamResultExecutor.FileStreamResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor.ActionContext.set -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider.GetChangeToken() -> Microsoft.Extensions.Primitives.IChangeToken +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider.ActionDescriptors.get -> Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionInvokerFactory.CreateInvoker(Microsoft.AspNetCore.Mvc.ActionContext actionContext) -> Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, TResult result) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper.Convert(object value, System.Type returnType) -> Microsoft.AspNetCore.Mvc.IActionResult +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper.GetResultDataType(System.Type returnType) -> System.Type +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector.SelectBestCandidate(Microsoft.AspNetCore.Routing.RouteContext context, System.Collections.Generic.IReadOnlyList candidates) -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector.SelectCandidates(Microsoft.AspNetCore.Routing.RouteContext context) -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory.GetClientError(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult clientError) -> Microsoft.AspNetCore.Mvc.IActionResult +~Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch.Name.get -> string +~Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch.Value.get -> object +~Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch.Value.set -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult.Convert() -> Microsoft.AspNetCore.Mvc.IActionResult +~Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory.CreateReader(System.IO.Stream stream, System.Text.Encoding encoding) -> System.IO.TextReader +~Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory.CreateWriter(System.IO.Stream stream, System.Text.Encoding encoding) -> System.IO.TextWriter +~Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor.ParameterInfo.get -> System.Reflection.ParameterInfo +~Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor.PropertyInfo.get -> System.Reflection.PropertyInfo +~Microsoft.AspNetCore.Mvc.Infrastructure.LocalRedirectResultExecutor.LocalRedirectResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter.ModelStateInvalidFilter(Microsoft.AspNetCore.Mvc.ApiBehaviorOptions apiBehaviorOptions, Microsoft.Extensions.Logging.ILogger logger) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter.OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter.OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor.FormatterSelector.get -> Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector +~Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor.ObjectResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector formatterSelector, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor.ObjectResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector formatterSelector, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions mvcOptions) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor.WriterFactory.get -> System.Func +~Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.PhysicalFileResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.RedirectResultExecutor.RedirectResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToActionResultExecutor.RedirectToActionResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToPageResultExecutor.RedirectToPageResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToRouteResultExecutor.RedirectToRouteResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.Infrastructure.VirtualFileResultExecutor.VirtualFileResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) -> void +~Microsoft.AspNetCore.Mvc.JsonOptions.JsonSerializerOptions.get -> System.Text.Json.JsonSerializerOptions +~Microsoft.AspNetCore.Mvc.JsonResult.ContentType.get -> string +~Microsoft.AspNetCore.Mvc.JsonResult.ContentType.set -> void +~Microsoft.AspNetCore.Mvc.JsonResult.JsonResult(object value) -> void +~Microsoft.AspNetCore.Mvc.JsonResult.JsonResult(object value, object serializerSettings) -> void +~Microsoft.AspNetCore.Mvc.JsonResult.SerializerSettings.get -> object +~Microsoft.AspNetCore.Mvc.JsonResult.SerializerSettings.set -> void +~Microsoft.AspNetCore.Mvc.JsonResult.Value.get -> object +~Microsoft.AspNetCore.Mvc.JsonResult.Value.set -> void +~Microsoft.AspNetCore.Mvc.LocalRedirectResult.LocalRedirectResult(string localUrl) -> void +~Microsoft.AspNetCore.Mvc.LocalRedirectResult.LocalRedirectResult(string localUrl, bool permanent) -> void +~Microsoft.AspNetCore.Mvc.LocalRedirectResult.LocalRedirectResult(string localUrl, bool permanent, bool preserveMethod) -> void +~Microsoft.AspNetCore.Mvc.LocalRedirectResult.Url.get -> string +~Microsoft.AspNetCore.Mvc.LocalRedirectResult.Url.set -> void +~Microsoft.AspNetCore.Mvc.LocalRedirectResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.LocalRedirectResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute.ConfigurationType.get -> System.Type +~Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute.MiddlewareFilterAttribute(System.Type configurationType) -> void +~Microsoft.AspNetCore.Mvc.ModelBinderAttribute.BinderType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ModelBinderAttribute.BinderType.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinderAttribute.ModelBinderAttribute(System.Type binderType) -> void +~Microsoft.AspNetCore.Mvc.ModelBinderAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinderAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder.BinderTypeModelBinder(System.Type binderType) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BodyModelBinder(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BodyModelBinder(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BodyModelBinder(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.MvcOptions options) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider.BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider.BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider.BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.MvcOptions options) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinder.ByteArrayModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.AddErrorIfBindingRequired(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.CreateInstance(System.Type targetType) -> object +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.ElementBinder.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.ComplexTypeModelBinder(System.Collections.Generic.IDictionary propertyBinders, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.ComplexTypeModelBinder(System.Collections.Generic.IDictionary propertyBinders, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DecimalModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DecimalModelBinder.DecimalModelBinder(System.Globalization.NumberStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.DictionaryModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder keyBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder valueBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.DictionaryModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder keyBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder valueBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.DictionaryModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder keyBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder valueBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DoubleModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DoubleModelBinder.DoubleModelBinder(System.Globalization.NumberStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinder.EnumTypeModelBinder(bool suppressBindingUndefinedValueToEnumType, System.Type modelType, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinderProvider.EnumTypeModelBinderProvider(Microsoft.AspNetCore.Mvc.MvcOptions options) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatModelBinder.FloatModelBinder(System.Globalization.NumberStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatingPointTypeModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder.FormCollectionModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinder.FormFileModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinder.HeaderModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinder.HeaderModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder innerModelBinder) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinder.KeyValuePairModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder keyBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder valueBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder.SimpleTypeModelBinder(System.Type type, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider.BindingSourceValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.CompositeValueProvider(System.Collections.Generic.IList valueProviders) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.Filter() -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.OriginalValueProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.OriginalValueProvider.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.DefaultPropertyFilterProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProvider.ContainsPrefix(string prefix) -> bool +~Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProvider.FormFileValueProvider(Microsoft.AspNetCore.Http.IFormFileCollection files) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProvider.GetValue(string key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +~Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProviderFactory.CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider.Culture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider.FormValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Http.IFormCollection values, System.Globalization.CultureInfo culture) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider.PrefixContainer.get -> Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer +~Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProviderFactory.CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider.Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.ICollectionModelBinder.CanCreateInstance(System.Type targetType) -> bool +~Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider.GetKeysFromPrefix(string prefix) -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider.Filter() -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory.CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProvider.JQueryFormValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProviderFactory.CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProvider.JQueryQueryStringValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProviderFactory.CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider.Culture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider.Filter() -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider.GetKeysFromPrefix(string prefix) -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider.JQueryValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider.PrefixContainer.get -> Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BinderModelName.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BinderModelName.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BinderType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BinderType.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BindingSource.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.ModelBindingMessageProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.ModelBindingMessageProvider.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.PropertyFilterProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.PropertyFilterProvider.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext.BindingMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext.BindingMetadataProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext.ParameterAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext.PropertyAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext.TypeAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider.BindingSourceMetadataProvider(System.Type type, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider.CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BindingMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BindingMetadata.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.ContainerMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.ContainerMetadata.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.DefaultMetadataDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.DisplayMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.DisplayMetadata.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.ModelAttributes.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.Properties.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata[] +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.Properties.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.PropertyGetter.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.PropertyGetter.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.PropertySetter.get -> System.Action +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.PropertySetter.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.ValidationMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.ValidationMetadata.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.DefaultModelBindingMessageProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider originalProvider) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetAttemptedValueIsInvalidAccessor(System.Func attemptedValueIsInvalidAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetMissingBindRequiredValueAccessor(System.Func missingBindRequiredValueAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetMissingKeyOrValueAccessor(System.Func missingKeyOrValueAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetMissingRequestBodyRequiredValueAccessor(System.Func missingRequestBodyRequiredValueAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetNonPropertyAttemptedValueIsInvalidAccessor(System.Func nonPropertyAttemptedValueIsInvalidAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetNonPropertyUnknownValueIsInvalidAccessor(System.Func nonPropertyUnknownValueIsInvalidAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetNonPropertyValueMustBeANumberAccessor(System.Func nonPropertyValueMustBeANumberAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetUnknownValueIsInvalidAccessor(System.Func unknownValueIsInvalidAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetValueIsInvalidAccessor(System.Func valueIsInvalidAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetValueMustBeANumberAccessor(System.Func valueMustBeANumberAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.SetValueMustNotBeNullAccessor(System.Func valueMustNotBeNullAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.Attributes.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BindingMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.DefaultModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails details) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.DefaultModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails details, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider modelBindingMessageProvider) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.DisplayMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ValidationMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.DefaultModelMetadataProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.DefaultModelMetadataProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider, Microsoft.Extensions.Options.IOptions optionsAccessor) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.DetailsProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.ModelBindingMessageProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.AdditionalValues.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DataTypeName.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DataTypeName.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.Description.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.Description.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DisplayFormatString.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DisplayFormatString.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DisplayFormatStringProvider.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DisplayFormatStringProvider.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DisplayName.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.DisplayName.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EditFormatString.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EditFormatString.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EditFormatStringProvider.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EditFormatStringProvider.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EnumGroupedDisplayNamesAndValues.get -> System.Collections.Generic.IEnumerable> +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EnumGroupedDisplayNamesAndValues.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EnumNamesAndValues.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.EnumNamesAndValues.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.NullDisplayText.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.NullDisplayText.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.NullDisplayTextProvider.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.NullDisplayTextProvider.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.Placeholder.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.Placeholder.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.SimpleDisplayProperty.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.SimpleDisplayProperty.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.TemplateHint.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata.TemplateHint.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext.DisplayMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext.DisplayMetadataProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext.PropertyAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext.TypeAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ExcludeBindingMetadataProvider.CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ExcludeBindingMetadataProvider.ExcludeBindingMetadataProvider(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider.CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider.CreateDisplayMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider.CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.PropertyValidationFilter.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.PropertyValidationFilter.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata.ValidatorMetadata.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext.ParameterAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext.PropertyAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext.TypeAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext.ValidationMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext.ValidationMetadataProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.ParameterAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.PropertyAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.TypeAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactory.CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactory.ModelBinderFactory(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.Extensions.Options.IOptions options, System.IServiceProvider serviceProvider) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext.BindingInfo.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext.BindingInfo.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext.CacheToken.get -> object +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext.CacheToken.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext.Metadata.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator.ObjectModelValidator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, System.Collections.Generic.IList validatorProviders) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.ParameterBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator validator, Microsoft.Extensions.Options.IOptions mvcOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer.ContainsPrefix(string prefix) -> bool +~Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer.GetKeysFromPrefix(string prefix) -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer.PrefixContainer(System.Collections.Generic.ICollection values) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider.Culture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider.PrefixContainer.get -> Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer +~Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider.QueryStringValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Http.IQueryCollection values, System.Globalization.CultureInfo culture) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProviderFactory.CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider.Culture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider.PrefixContainer.get -> Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer +~Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider.RouteValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Routing.RouteValueDictionary values) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider.RouteValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Routing.RouteValueDictionary values, System.Globalization.CultureInfo culture) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProviderFactory.CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider.CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider.FullTypeName.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider.SuppressChildValidationMetadataProvider(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider.SuppressChildValidationMetadataProvider(string fullTypeName) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeException.UnsupportedContentTypeException(string message) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter.OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter.OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorCache.GetValidators(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider validatorProvider) -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeClientModelValidatorProvider.CompositeClientModelValidatorProvider(System.Collections.Generic.IEnumerable providers) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeClientModelValidatorProvider.CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeClientModelValidatorProvider.ValidatorProviders.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeModelValidatorProvider.CompositeModelValidatorProvider(System.Collections.Generic.IList providers) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeModelValidatorProvider.CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeModelValidatorProvider.ValidatorProviders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IMetadataBasedModelValidatorProvider.HasValidators(System.Type modelType, System.Collections.Generic.IList validatorMetadata) -> bool +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator.Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Cache.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Container.get -> object +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Container.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Context.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Key.get -> string +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Key.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Metadata.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Model.get -> object +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Model.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.StateManager.StateManager(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor visitor, object newModel) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Strategy.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Strategy.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) -> bool +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidationState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidatorProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider +~Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache.GetValidators(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider) -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ModelMetadataTypeAttribute.MetadataType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ModelMetadataTypeAttribute.ModelMetadataTypeAttribute(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.MvcOptions.CacheProfiles.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.MvcOptions.Conventions.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.MvcOptions.Filters.get -> Microsoft.AspNetCore.Mvc.Filters.FilterCollection +~Microsoft.AspNetCore.Mvc.MvcOptions.FormatterMappings.get -> Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings +~Microsoft.AspNetCore.Mvc.MvcOptions.InputFormatters.get -> Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection +~Microsoft.AspNetCore.Mvc.MvcOptions.ModelBinderProviders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.MvcOptions.ModelBindingMessageProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider +~Microsoft.AspNetCore.Mvc.MvcOptions.ModelMetadataDetailsProviders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.MvcOptions.ModelValidatorProviders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.MvcOptions.OutputFormatters.get -> Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection +~Microsoft.AspNetCore.Mvc.MvcOptions.ValueProviderFactories.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.NotFoundObjectResult.NotFoundObjectResult(object value) -> void +~Microsoft.AspNetCore.Mvc.ObjectResult.ContentTypes.get -> Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection +~Microsoft.AspNetCore.Mvc.ObjectResult.ContentTypes.set -> void +~Microsoft.AspNetCore.Mvc.ObjectResult.DeclaredType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ObjectResult.DeclaredType.set -> void +~Microsoft.AspNetCore.Mvc.ObjectResult.Formatters.get -> Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection +~Microsoft.AspNetCore.Mvc.ObjectResult.Formatters.set -> void +~Microsoft.AspNetCore.Mvc.ObjectResult.ObjectResult(object value) -> void +~Microsoft.AspNetCore.Mvc.ObjectResult.Value.get -> object +~Microsoft.AspNetCore.Mvc.ObjectResult.Value.set -> void +~Microsoft.AspNetCore.Mvc.OkObjectResult.OkObjectResult(object value) -> void +~Microsoft.AspNetCore.Mvc.PhysicalFileResult.FileName.get -> string +~Microsoft.AspNetCore.Mvc.PhysicalFileResult.FileName.set -> void +~Microsoft.AspNetCore.Mvc.PhysicalFileResult.PhysicalFileResult(string fileName, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> void +~Microsoft.AspNetCore.Mvc.PhysicalFileResult.PhysicalFileResult(string fileName, string contentType) -> void +~Microsoft.AspNetCore.Mvc.ProblemDetails.Detail.get -> string +~Microsoft.AspNetCore.Mvc.ProblemDetails.Detail.set -> void +~Microsoft.AspNetCore.Mvc.ProblemDetails.Extensions.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ProblemDetails.Instance.get -> string +~Microsoft.AspNetCore.Mvc.ProblemDetails.Instance.set -> void +~Microsoft.AspNetCore.Mvc.ProblemDetails.Title.get -> string +~Microsoft.AspNetCore.Mvc.ProblemDetails.Title.set -> void +~Microsoft.AspNetCore.Mvc.ProblemDetails.Type.get -> string +~Microsoft.AspNetCore.Mvc.ProblemDetails.Type.set -> void +~Microsoft.AspNetCore.Mvc.ProducesAttribute.ContentTypes.get -> Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection +~Microsoft.AspNetCore.Mvc.ProducesAttribute.ContentTypes.set -> void +~Microsoft.AspNetCore.Mvc.ProducesAttribute.ProducesAttribute(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.ProducesAttribute.ProducesAttribute(string contentType, params string[] additionalContentTypes) -> void +~Microsoft.AspNetCore.Mvc.ProducesAttribute.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) -> void +~Microsoft.AspNetCore.Mvc.ProducesAttribute.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.ProducesAttribute.Type.set -> void +~Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute.ProducesDefaultResponseTypeAttribute(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute.ProducesErrorResponseTypeAttribute(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute.ProducesResponseTypeAttribute(System.Type type, int statusCode) -> void +~Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute.Type.set -> void +~Microsoft.AspNetCore.Mvc.RedirectResult.RedirectResult(string url) -> void +~Microsoft.AspNetCore.Mvc.RedirectResult.RedirectResult(string url, bool permanent) -> void +~Microsoft.AspNetCore.Mvc.RedirectResult.RedirectResult(string url, bool permanent, bool preserveMethod) -> void +~Microsoft.AspNetCore.Mvc.RedirectResult.Url.get -> string +~Microsoft.AspNetCore.Mvc.RedirectResult.Url.set -> void +~Microsoft.AspNetCore.Mvc.RedirectResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.RedirectResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.ActionName.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.ActionName.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.ControllerName.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.ControllerName.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.Fragment.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.Fragment.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RedirectToActionResult(string actionName, string controllerName, object routeValues) -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent) -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, bool preserveMethod) -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, bool preserveMethod, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RedirectToActionResult(string actionName, string controllerName, object routeValues, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.RedirectToActionResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.Fragment.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.Fragment.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.Host.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.Host.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.PageHandler.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.PageHandler.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.PageName.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.PageName.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.Protocol.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.Protocol.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, object routeValues) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, string pageHandler) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, string pageHandler, object routeValues) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, bool preserveMethod) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, bool preserveMethod, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RedirectToPageResult(string pageName, string pageHandler, object routeValues, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.RedirectToPageResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.Fragment.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.Fragment.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RedirectToRouteResult(object routeValues) -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RedirectToRouteResult(string routeName, object routeValues) -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RedirectToRouteResult(string routeName, object routeValues, bool permanent) -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RedirectToRouteResult(string routeName, object routeValues, bool permanent, bool preserveMethod) -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RedirectToRouteResult(string routeName, object routeValues, bool permanent, bool preserveMethod, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RedirectToRouteResult(string routeName, object routeValues, bool permanent, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RedirectToRouteResult(string routeName, object routeValues, string fragment) -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RouteName.get -> string +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RouteName.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.UrlHelper.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.RedirectToRouteResult.UrlHelper.set -> void +~Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.CacheProfileName.get -> string +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.CacheProfileName.set -> void +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.GetCacheProfile(Microsoft.AspNetCore.Mvc.MvcOptions options) -> Microsoft.AspNetCore.Mvc.CacheProfile +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.VaryByHeader.get -> string +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.VaryByHeader.set -> void +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.VaryByQueryKeys.get -> string[] +~Microsoft.AspNetCore.Mvc.ResponseCacheAttribute.VaryByQueryKeys.set -> void +~Microsoft.AspNetCore.Mvc.RouteAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.RouteAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.RouteAttribute.RouteAttribute(string template) -> void +~Microsoft.AspNetCore.Mvc.RouteAttribute.Template.get -> string +~Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer.State.get -> object +~Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer.State.set -> void +~Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.HttpMethodAttribute(System.Collections.Generic.IEnumerable httpMethods) -> void +~Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.HttpMethodAttribute(System.Collections.Generic.IEnumerable httpMethods, string template) -> void +~Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.HttpMethods.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute.Template.get -> string +~Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider.HttpMethods.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Name.get -> string +~Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Template.get -> string +~Microsoft.AspNetCore.Mvc.Routing.IRouteValueProvider.RouteKey.get -> string +~Microsoft.AspNetCore.Mvc.Routing.IRouteValueProvider.RouteValue.get -> string +~Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory.GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context) -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.Routing.KnownRouteValueConstraint.KnownRouteValueConstraint(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) -> void +~Microsoft.AspNetCore.Mvc.Routing.KnownRouteValueConstraint.Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +~Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute.RouteKey.get -> string +~Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute.RouteValue.get -> string +~Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute.RouteValueAttribute(string routeKey, string routeValue) -> void +~Microsoft.AspNetCore.Mvc.Routing.UrlHelper.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.Routing.UrlHelper.Router.get -> Microsoft.AspNetCore.Routing.IRouter +~Microsoft.AspNetCore.Mvc.Routing.UrlHelper.UrlHelper(Microsoft.AspNetCore.Mvc.ActionContext actionContext) -> void +~Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.AmbientValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.GenerateUrl(string protocol, string host, string path) -> string +~Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.GenerateUrl(string protocol, string host, string virtualPath, string fragment) -> string +~Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.GetValuesDictionary(object values) -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.UrlHelperBase(Microsoft.AspNetCore.Mvc.ActionContext actionContext) -> void +~Microsoft.AspNetCore.Mvc.Routing.UrlHelperFactory.GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context) -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.SerializableError.SerializableError(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~Microsoft.AspNetCore.Mvc.ServiceFilterAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.ServiceFilterAttribute.ServiceFilterAttribute(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.ServiceFilterAttribute.ServiceType.get -> System.Type +~Microsoft.AspNetCore.Mvc.SignInResult.AuthenticationScheme.get -> string +~Microsoft.AspNetCore.Mvc.SignInResult.AuthenticationScheme.set -> void +~Microsoft.AspNetCore.Mvc.SignInResult.Principal.get -> System.Security.Claims.ClaimsPrincipal +~Microsoft.AspNetCore.Mvc.SignInResult.Principal.set -> void +~Microsoft.AspNetCore.Mvc.SignInResult.Properties.get -> Microsoft.AspNetCore.Authentication.AuthenticationProperties +~Microsoft.AspNetCore.Mvc.SignInResult.Properties.set -> void +~Microsoft.AspNetCore.Mvc.SignInResult.SignInResult(System.Security.Claims.ClaimsPrincipal principal) -> void +~Microsoft.AspNetCore.Mvc.SignInResult.SignInResult(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.SignInResult.SignInResult(string authenticationScheme, System.Security.Claims.ClaimsPrincipal principal) -> void +~Microsoft.AspNetCore.Mvc.SignInResult.SignInResult(string authenticationScheme, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.SignOutResult.AuthenticationSchemes.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.SignOutResult.AuthenticationSchemes.set -> void +~Microsoft.AspNetCore.Mvc.SignOutResult.Properties.get -> Microsoft.AspNetCore.Authentication.AuthenticationProperties +~Microsoft.AspNetCore.Mvc.SignOutResult.Properties.set -> void +~Microsoft.AspNetCore.Mvc.SignOutResult.SignOutResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.SignOutResult.SignOutResult(System.Collections.Generic.IList authenticationSchemes) -> void +~Microsoft.AspNetCore.Mvc.SignOutResult.SignOutResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.SignOutResult.SignOutResult(string authenticationScheme) -> void +~Microsoft.AspNetCore.Mvc.SignOutResult.SignOutResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> void +~Microsoft.AspNetCore.Mvc.TypeFilterAttribute.Arguments.get -> object[] +~Microsoft.AspNetCore.Mvc.TypeFilterAttribute.Arguments.set -> void +~Microsoft.AspNetCore.Mvc.TypeFilterAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.TypeFilterAttribute.ImplementationType.get -> System.Type +~Microsoft.AspNetCore.Mvc.TypeFilterAttribute.TypeFilterAttribute(System.Type type) -> void +~Microsoft.AspNetCore.Mvc.UnauthorizedObjectResult.UnauthorizedObjectResult(object value) -> void +~Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult.UnprocessableEntityObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult.UnprocessableEntityObjectResult(object error) -> void +~Microsoft.AspNetCore.Mvc.ValidationProblemDetails.Errors.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ValidationProblemDetails.ValidationProblemDetails(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~Microsoft.AspNetCore.Mvc.ValidationProblemDetails.ValidationProblemDetails(System.Collections.Generic.IDictionary errors) -> void +~Microsoft.AspNetCore.Mvc.VirtualFileResult.FileName.get -> string +~Microsoft.AspNetCore.Mvc.VirtualFileResult.FileName.set -> void +~Microsoft.AspNetCore.Mvc.VirtualFileResult.FileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.Mvc.VirtualFileResult.FileProvider.set -> void +~Microsoft.AspNetCore.Mvc.VirtualFileResult.VirtualFileResult(string fileName, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> void +~Microsoft.AspNetCore.Mvc.VirtualFileResult.VirtualFileResult(string fileName, string contentType) -> void +~Microsoft.Extensions.DependencyInjection.IMvcBuilder.PartManager.get -> Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager +~Microsoft.Extensions.DependencyInjection.IMvcBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder.PartManager.get -> Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager +~Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~abstract Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute.IsValidForRequest(Microsoft.AspNetCore.Routing.RouteContext routeContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action) -> bool +~abstract Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart.Name.get -> string +~abstract Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory.GetApplicationParts(System.Reflection.Assembly assembly) -> System.Collections.Generic.IEnumerable +~abstract Microsoft.AspNetCore.Mvc.Diagnostics.EventData.this[int index].get -> System.Collections.Generic.KeyValuePair +~abstract Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollectionProvider.ActionDescriptors.get -> Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection +~abstract Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollectionProvider.GetChangeToken() -> Microsoft.Extensions.Primitives.IChangeToken +~abstract Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions.DefaultValues.get -> System.Collections.Generic.IReadOnlyDictionary +~abstract Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector.SelectFormatter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context, System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection mediaTypes) -> Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter +~abstract Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory.CreateProblemDetails(Microsoft.AspNetCore.Http.HttpContext httpContext, int? statusCode = null, string title = null, string type = null, string detail = null, string instance = null) -> Microsoft.AspNetCore.Mvc.ProblemDetails +~abstract Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory.CreateValidationProblemDetails(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary, int? statusCode = null, string title = null, string type = null, string detail = null, string instance = null) -> Microsoft.AspNetCore.Mvc.ValidationProblemDetails +~abstract Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider.ContainsPrefix(string prefix) -> bool +~abstract Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider.GetValue(string key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +~abstract Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator.GetValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState) -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor +~abstract Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer.TransformAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary values) -> System.Threading.Tasks.ValueTask +~abstract Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext) -> string +~abstract Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext) -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterAction" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnActionExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnActionExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnActionExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionResultEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterActionResult" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnAuthorization" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterControllerActionMethod" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnException" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnResourceExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnResourceExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnResourceExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnResultExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnResultExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnResultExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeAction" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnActionExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnActionExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnActionExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionResultEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeActionResult" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnAuthorization" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeControllerActionMethod" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnException" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnResourceExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnResourceExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnResourceExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnResultExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnResultExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnResultExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.EventData.EventNamespace = "Microsoft.AspNetCore.Mvc." -> string +~override Microsoft.AspNetCore.Mvc.AcceptedAtActionResult.OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult.OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.AcceptedResult.OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart.Name.get -> string +~override Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory.GetApplicationParts(System.Reflection.Assembly assembly) -> System.Collections.Generic.IEnumerable +~override Microsoft.AspNetCore.Mvc.ApplicationParts.NullApplicationPartFactory.GetApplicationParts(System.Reflection.Assembly assembly) -> System.Collections.Generic.IEnumerable +~override Microsoft.AspNetCore.Mvc.ChallengeResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.ContentResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.DisplayName.get -> string +~override Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.DisplayName.set -> void +~override Microsoft.AspNetCore.Mvc.CreatedAtActionResult.OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.CreatedResult.OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.EmptyResult.ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.FileContentResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.FileStreamResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.ForbidResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality.ToString() -> string +~override Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter.CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) -> bool +~override Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding encoding) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter.WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector.SelectFormatter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context, System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) -> Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter +~override Microsoft.AspNetCore.Mvc.JsonResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.LocalRedirectResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.CanCreateInstance(System.Type targetType) -> bool +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.ConvertToCollectionType(System.Type targetType, System.Collections.Generic.IEnumerable collection) -> object +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.CopyToModel(object target, System.Collections.Generic.IEnumerable sourceCollection) -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.CreateEmptyCollection(System.Type targetType) -> object +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.CanCreateInstance(System.Type targetType) -> bool +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.ConvertToCollectionType(System.Type targetType, System.Collections.Generic.IEnumerable> collection) -> object +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.CreateEmptyCollection(System.Type targetType) -> object +~override Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinder.CheckModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult valueProviderResult, object model) -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.InsertItem(int index, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider item) -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.SetItem(int index, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider item) -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ActionContext.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.BinderModelName.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.BinderModelName.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.BindingSource.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.EnterNestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, string fieldName, string modelName, object model) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.FieldName.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.FieldName.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.Model.get -> object +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.Model.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ModelMetadata.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ModelName.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ModelName.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ModelState.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.PropertyFilter.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.PropertyFilter.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ValidationState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ValidationState.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ValueProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~override Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.ValueProvider.set -> void +~override Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider.ContainsPrefix(string prefix) -> bool +~override Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider.GetValue(string key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +~override Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider.ContainsPrefix(string prefix) -> bool +~override Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider.GetValue(string key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.AttemptedValueIsInvalidAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.MissingBindRequiredValueAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.MissingKeyOrValueAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.MissingRequestBodyRequiredValueAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.NonPropertyAttemptedValueIsInvalidAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.NonPropertyUnknownValueIsInvalidAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.NonPropertyValueMustBeANumberAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.UnknownValueIsInvalidAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.ValueIsInvalidAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.ValueMustBeANumberAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider.ValueMustNotBeNullAccessor.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.AdditionalValues.get -> System.Collections.Generic.IReadOnlyDictionary +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BinderModelName.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BinderType.get -> System.Type +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ContainerMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.DataTypeName.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.Description.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.DisplayFormatString.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.DisplayName.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.EditFormatString.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ElementMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.EnumGroupedDisplayNamesAndValues.get -> System.Collections.Generic.IEnumerable> +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.EnumNamesAndValues.get -> System.Collections.Generic.IReadOnlyDictionary +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.GetMetadataForProperties(System.Type modelType) -> System.Collections.Generic.IEnumerable +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.GetMetadataForType(System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ModelBindingMessageProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.NullDisplayText.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.Placeholder.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.Properties.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelPropertyCollection +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.PropertyFilterProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.PropertyGetter.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.PropertySetter.get -> System.Action +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.PropertyValidationFilter.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.SimpleDisplayProperty.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.TemplateHint.get -> string +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ValidatorMetadata.get -> System.Collections.Generic.IReadOnlyList +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForParameter(System.Reflection.ParameterInfo parameter) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForParameter(System.Reflection.ParameterInfo parameter, System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForProperties(System.Type modelType) -> System.Collections.Generic.IEnumerable +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForProperty(System.Reflection.PropertyInfo propertyInfo, System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForType(System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider.ContainsPrefix(string prefix) -> bool +~override Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider.GetValue(string key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +~override Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider.ContainsPrefix(string key) -> bool +~override Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider.GetValue(string key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +~override Microsoft.AspNetCore.Mvc.ObjectResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.PhysicalFileResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.RedirectResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.RedirectToActionResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.RedirectToPageResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.RedirectToRouteResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Routing.UrlHelper.Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext) -> string +~override Microsoft.AspNetCore.Mvc.Routing.UrlHelper.RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext) -> string +~override Microsoft.AspNetCore.Mvc.SignInResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.SignOutResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.StatusCodeResult.ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~override Microsoft.AspNetCore.Mvc.VirtualFileResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override sealed Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) -> System.Threading.Tasks.Task +~override sealed Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) -> System.Threading.Tasks.Task +~override sealed Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapAreaControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string name, string areaName, string pattern, object defaults = null, object constraints = null, object dataTokens = null) -> Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string name, string pattern, object defaults = null, object constraints = null, object dataTokens = null) -> Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllers(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints) -> Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapDefaultControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints) -> Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapDynamicControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) -> void +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapDynamicControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state) -> void +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapFallbackToAreaController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string action, string controller, string area) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapFallbackToAreaController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string action, string controller, string area) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapFallbackToController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string action, string controller) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapFallbackToController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string action, string controller) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configureRoutes) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvcWithDefaultRoute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.MvcAreaRouteBuilderExtensions.MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template) -> Microsoft.AspNetCore.Routing.IRouteBuilder +~static Microsoft.AspNetCore.Builder.MvcAreaRouteBuilderExtensions.MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template, object defaults) -> Microsoft.AspNetCore.Routing.IRouteBuilder +~static Microsoft.AspNetCore.Builder.MvcAreaRouteBuilderExtensions.MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template, object defaults, object constraints) -> Microsoft.AspNetCore.Routing.IRouteBuilder +~static Microsoft.AspNetCore.Builder.MvcAreaRouteBuilderExtensions.MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template, object defaults, object constraints, object dataTokens) -> Microsoft.AspNetCore.Routing.IRouteBuilder +~static Microsoft.AspNetCore.Mvc.ActionResult.implicit operator Microsoft.AspNetCore.Mvc.ActionResult(Microsoft.AspNetCore.Mvc.ActionResult result) -> Microsoft.AspNetCore.Mvc.ActionResult +~static Microsoft.AspNetCore.Mvc.ActionResult.implicit operator Microsoft.AspNetCore.Mvc.ActionResult(TValue value) -> Microsoft.AspNetCore.Mvc.ActionResult +~static Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.CombineAttributeRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel left, Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel right) -> Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel +~static Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.CombineTemplates(string prefix, string template) -> string +~static Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.IsOverridePattern(string template) -> bool +~static Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.ReplaceTokens(string template, System.Collections.Generic.IDictionary values) -> string +~static Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel.ReplaceTokens(string template, System.Collections.Generic.IDictionary values, Microsoft.AspNetCore.Routing.IOutboundParameterTransformer routeTokenTransformer) -> string +~static Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory.GetApplicationPartFactory(System.Reflection.Assembly assembly) -> Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory +~static Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory.GetDefaultApplicationParts(System.Reflection.Assembly assembly) -> System.Collections.Generic.IEnumerable +~static Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory.Instance.get -> Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory +~static Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute.GetRelatedAssemblies(System.Reflection.Assembly assembly, bool throwOnError) -> System.Collections.Generic.IReadOnlyList +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Create(object model) -> void +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Delete(object id) -> void +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Edit(object id, object model) -> void +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Find(object id) -> void +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Get(object id) -> void +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Post(object model) -> void +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Put(object id, object model) -> void +~static Microsoft.AspNetCore.Mvc.DefaultApiConventions.Update(object id, object model) -> void +~static Microsoft.AspNetCore.Mvc.Formatters.MediaType.CreateMediaTypeSegmentWithQuality(string mediaType, int start) -> Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality +~static Microsoft.AspNetCore.Mvc.Formatters.MediaType.GetEncoding(Microsoft.Extensions.Primitives.StringSegment mediaType) -> System.Text.Encoding +~static Microsoft.AspNetCore.Mvc.Formatters.MediaType.GetEncoding(string mediaType) -> System.Text.Encoding +~static Microsoft.AspNetCore.Mvc.Formatters.MediaType.ReplaceEncoding(Microsoft.Extensions.Primitives.StringSegment mediaType, System.Text.Encoding encoding) -> string +~static Microsoft.AspNetCore.Mvc.Formatters.MediaType.ReplaceEncoding(string mediaType, System.Text.Encoding encoding) -> string +~static Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.CreateLogger(Microsoft.Extensions.Logging.ILoggerFactory factory) -> Microsoft.Extensions.Logging.ILogger +~static Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.WriteFileAsync(Microsoft.AspNetCore.Http.HttpContext context, System.IO.Stream fileStream, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.CreateAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList factories) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.CreateAsync(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext.CreateBindingContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo bindingInfo, string modelName) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext +~static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.MetadataDetailsProviderExtensions.RemoveType(this System.Collections.Generic.IList list, System.Type type) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.MetadataDetailsProviderExtensions.RemoveType(this System.Collections.Generic.IList list) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.GetAttributesForParameter(System.Reflection.ParameterInfo parameterInfo) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.GetAttributesForParameter(System.Reflection.ParameterInfo parameterInfo, System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.GetAttributesForProperty(System.Type containerType, System.Reflection.PropertyInfo property, System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.GetAttributesForProperty(System.Type type, System.Reflection.PropertyInfo property) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.GetAttributesForType(System.Type type) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderExtensions.RemoveType(this System.Collections.Generic.IList list, System.Type type) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderExtensions.RemoveType(this System.Collections.Generic.IList list) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProviderExtensions.GetMetadataForProperty(this Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, System.Type containerType, string propertyName) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelNames.CreateIndexModelName(string parentName, int index) -> string +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelNames.CreateIndexModelName(string parentName, string index) -> string +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelNames.CreatePropertyModelName(string prefix, string propertyName) -> string +~static Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderExtensions.RemoveType(this System.Collections.Generic.IList list, System.Type type) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderExtensions.RemoveType(this System.Collections.Generic.IList list) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.StateManager.Recurse(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor visitor, string key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy strategy) -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.StateManager +~static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryExtensions.RemoveType(this System.Collections.Generic.IList list, System.Type type) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryExtensions.RemoveType(this System.Collections.Generic.IList list) -> void +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, object values) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol, string host) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol, string host, string fragment) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.ActionLink(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action = null, string controller = null, object values = null, string protocol = null, string host = null, string fragment = null) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, object values) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol, string host) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol, string host, string fragment) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.PageLink(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName = null, string pageHandler = null, object values = null, string protocol = null, string host = null, string fragment = null) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, object values) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol, string host) -> string +~static Microsoft.AspNetCore.Mvc.UrlHelperExtensions.RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol, string host, string fragment) -> string +~static Microsoft.AspNetCore.Routing.ControllerLinkGeneratorExtensions.GetPathByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string action = null, string controller = null, object values = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.AspNetCore.Routing.ControllerLinkGeneratorExtensions.GetPathByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string action, string controller, object values = null, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.AspNetCore.Routing.ControllerLinkGeneratorExtensions.GetUriByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string action = null, string controller = null, object values = null, string scheme = null, Microsoft.AspNetCore.Http.HostString? host = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.AspNetCore.Routing.ControllerLinkGeneratorExtensions.GetUriByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string action, string controller, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.AspNetCore.Routing.PageLinkGeneratorExtensions.GetPathByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string page = null, string handler = null, object values = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.AspNetCore.Routing.PageLinkGeneratorExtensions.GetPathByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string page, string handler = null, object values = null, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.AspNetCore.Routing.PageLinkGeneratorExtensions.GetUriByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string page = null, string handler = null, object values = null, string scheme = null, Microsoft.AspNetCore.Http.HostString? host = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.AspNetCore.Routing.PageLinkGeneratorExtensions.GetUriByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string page, string handler, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) -> string +~static Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions.Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention actionModelConvention) -> void +~static Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions.Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IControllerModelConvention controllerModelConvention) -> void +~static Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions.Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention parameterModelConvention) -> void +~static Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions.Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelConvention parameterModelConvention) -> void +~static Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions.RemoveType(this System.Collections.Generic.IList list, System.Type type) -> void +~static Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions.RemoveType(this System.Collections.Generic.IList list) -> void +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.AddApplicationPart(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Reflection.Assembly assembly) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.AddControllersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.AddFormatterMappings(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.AddJsonOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.AddMvcOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.ConfigureApiBehaviorOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.ConfigureApplicationPartManager(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.SetCompatibilityVersion(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.CompatibilityVersion version) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddApplicationPart(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Reflection.Assembly assembly) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddAuthorization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddAuthorization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddControllersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddFormatterMappings(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddFormatterMappings(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddJsonOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddMvcOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.ConfigureApiBehaviorOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.ConfigureApplicationPartManager(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.SetCompatibilityVersion(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.CompatibilityVersion version) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.AddMvcCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.AddMvcCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static readonly Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter.UTF16EncodingLittleEndian -> System.Text.Encoding +~static readonly Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter.UTF8EncodingWithoutBOM -> System.Text.Encoding +~virtual Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint.Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) -> bool +~virtual Microsoft.AspNetCore.Mvc.ActionResult.ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.ActionResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.ApiConventionApplicationModelConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.ApiVisibilityConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.ClientErrorResultFilterConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.ConsumesConstraintForFormFileParameterConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.InferParameterBindingInfoConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.InvalidModelStateFilterConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.RouteTokenTransformerConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter.OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.BindPropertyAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~virtual Microsoft.AspNetCore.Mvc.BindPropertyAttribute.BindingSource.set -> void +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Accepted() -> Microsoft.AspNetCore.Mvc.AcceptedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Accepted(System.Uri uri) -> Microsoft.AspNetCore.Mvc.AcceptedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Accepted(System.Uri uri, object value) -> Microsoft.AspNetCore.Mvc.AcceptedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Accepted(object value) -> Microsoft.AspNetCore.Mvc.AcceptedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Accepted(string uri) -> Microsoft.AspNetCore.Mvc.AcceptedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Accepted(string uri, object value) -> Microsoft.AspNetCore.Mvc.AcceptedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtAction(string actionName) -> Microsoft.AspNetCore.Mvc.AcceptedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtAction(string actionName, object routeValues, object value) -> Microsoft.AspNetCore.Mvc.AcceptedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtAction(string actionName, object value) -> Microsoft.AspNetCore.Mvc.AcceptedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtAction(string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.AcceptedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtAction(string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.AcceptedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtAction(string actionName, string controllerName, object routeValues, object value) -> Microsoft.AspNetCore.Mvc.AcceptedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtRoute(object routeValues) -> Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtRoute(object routeValues, object value) -> Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtRoute(string routeName) -> Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtRoute(string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.AcceptedAtRoute(string routeName, object routeValues, object value) -> Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.BadRequest() -> Microsoft.AspNetCore.Mvc.BadRequestResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> Microsoft.AspNetCore.Mvc.BadRequestObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.BadRequest(object error) -> Microsoft.AspNetCore.Mvc.BadRequestObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Challenge() -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Challenge(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Conflict() -> Microsoft.AspNetCore.Mvc.ConflictResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Conflict(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> Microsoft.AspNetCore.Mvc.ConflictObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Conflict(object error) -> Microsoft.AspNetCore.Mvc.ConflictObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Content(string content) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Content(string content, string contentType) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Content(string content, string contentType, System.Text.Encoding contentEncoding) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Created(System.Uri uri, object value) -> Microsoft.AspNetCore.Mvc.CreatedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Created(string uri, object value) -> Microsoft.AspNetCore.Mvc.CreatedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.CreatedAtAction(string actionName, object routeValues, object value) -> Microsoft.AspNetCore.Mvc.CreatedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.CreatedAtAction(string actionName, object value) -> Microsoft.AspNetCore.Mvc.CreatedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.CreatedAtAction(string actionName, string controllerName, object routeValues, object value) -> Microsoft.AspNetCore.Mvc.CreatedAtActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.CreatedAtRoute(object routeValues, object value) -> Microsoft.AspNetCore.Mvc.CreatedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.CreatedAtRoute(string routeName, object routeValues, object value) -> Microsoft.AspNetCore.Mvc.CreatedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.CreatedAtRoute(string routeName, object value) -> Microsoft.AspNetCore.Mvc.CreatedAtRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(System.IO.Stream fileStream, string contentType, string fileDownloadName, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(byte[] fileContents, string contentType, string fileDownloadName, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.File(string virtualPath, string contentType, string fileDownloadName, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Forbid() -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Forbid(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.LocalRedirect(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.LocalRedirectPermanent(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.LocalRedirectPermanentPreserveMethod(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.LocalRedirectPreserveMethod(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.NoContent() -> Microsoft.AspNetCore.Mvc.NoContentResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.NotFound() -> Microsoft.AspNetCore.Mvc.NotFoundResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.NotFound(object value) -> Microsoft.AspNetCore.Mvc.NotFoundObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Ok() -> Microsoft.AspNetCore.Mvc.OkResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Ok(object value) -> Microsoft.AspNetCore.Mvc.OkObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.PhysicalFile(string physicalPath, string contentType, string fileDownloadName, bool enableRangeProcessing) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Problem(string detail = null, string instance = null, int? statusCode = null, string title = null, string type = null) -> Microsoft.AspNetCore.Mvc.ObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Redirect(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectPermanent(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectPermanentPreserveMethod(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectPreserveMethod(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction() -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction(string actionName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction(string actionName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction(string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction(string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction(string actionName, string controllerName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPermanent(string actionName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPermanent(string actionName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPermanent(string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPermanent(string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPermanent(string actionName, string controllerName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPermanent(string actionName, string controllerName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPermanentPreserveMethod(string actionName = null, string controllerName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToActionPreserveMethod(string actionName = null, string controllerName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPage(string pageName) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPage(string pageName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPage(string pageName, string pageHandler) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPage(string pageName, string pageHandler, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPage(string pageName, string pageHandler, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPagePermanent(string pageName) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPagePermanent(string pageName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPagePermanent(string pageName, string pageHandler) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPagePermanent(string pageName, string pageHandler, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPagePermanentPreserveMethod(string pageName, string pageHandler = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToPagePreserveMethod(string pageName, string pageHandler = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoute(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoute(string routeName) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoute(string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoute(string routeName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoute(string routeName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoutePermanent(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoutePermanent(string routeName) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoutePermanent(string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoutePermanent(string routeName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoutePermanent(string routeName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoutePermanentPreserveMethod(string routeName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToRoutePreserveMethod(string routeName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignIn(System.Security.Claims.ClaimsPrincipal principal) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignIn(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignOut() -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.SignOut(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.StatusCode(int statusCode) -> Microsoft.AspNetCore.Mvc.StatusCodeResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.StatusCode(int statusCode, object value) -> Microsoft.AspNetCore.Mvc.ObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(object model, System.Type modelType, string prefix) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(TModel model) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(TModel model, string prefix) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.TryValidateModel(object model) -> bool +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.TryValidateModel(object model, string prefix) -> bool +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Unauthorized() -> Microsoft.AspNetCore.Mvc.UnauthorizedResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.Unauthorized(object value) -> Microsoft.AspNetCore.Mvc.UnauthorizedObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.UnprocessableEntity() -> Microsoft.AspNetCore.Mvc.UnprocessableEntityResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.UnprocessableEntity(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.UnprocessableEntity(object error) -> Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.ValidationProblem() -> Microsoft.AspNetCore.Mvc.ActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.ValidationProblem(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary) -> Microsoft.AspNetCore.Mvc.ActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.ValidationProblem(Microsoft.AspNetCore.Mvc.ValidationProblemDetails descriptor) -> Microsoft.AspNetCore.Mvc.ActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerBase.ValidationProblem(string detail = null, string instance = null, int? statusCode = null, string title = null, string type = null, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary = null) -> Microsoft.AspNetCore.Mvc.ActionResult +~virtual Microsoft.AspNetCore.Mvc.ControllerContext.ValueProviderFactories.get -> System.Collections.Generic.IList +~virtual Microsoft.AspNetCore.Mvc.ControllerContext.ValueProviderFactories.set -> void +~virtual Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.ActionName.get -> string +~virtual Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor.ActionName.set -> void +~virtual Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider.IsController(System.Reflection.TypeInfo typeInfo) -> bool +~virtual Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator.Release(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute.OnException(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute.OnExceptionAsync(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute.OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute.OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute.OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Formatters.FormatFilter.GetFormat(Microsoft.AspNetCore.Mvc.ActionContext context) -> string +~virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) -> bool +~virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.CanReadType(System.Type type) -> bool +~virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.GetDefaultValueForType(System.Type modelType) -> object +~virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.GetSupportedContentTypes(string contentType, System.Type objectType) -> System.Collections.Generic.IReadOnlyList +~virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatter.ReadAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) -> bool +~virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.CanWriteType(System.Type type) -> bool +~virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.GetSupportedContentTypes(string contentType, System.Type objectType) -> System.Collections.Generic.IReadOnlyList +~virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter.WriteResponseHeaders(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter.SelectCharacterEncoding(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> System.Text.Encoding +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions.PostConfigure(string name, TOptions options) -> void +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.ContentResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ContentResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.FileContentResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileContentResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.FileContentResultExecutor.WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileContentResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.SetHeadersAndLog(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileResult result, long? fileLength, bool enableRangeProcessing, System.DateTimeOffset? lastModified = null, Microsoft.Net.Http.Headers.EntityTagHeaderValue etag = null) -> (Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength, bool serveBody) +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.FileStreamResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileStreamResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.FileStreamResultExecutor.WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileStreamResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.LocalRedirectResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.LocalRedirectResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ObjectResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PhysicalFileResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.GetFileInfo(string path) -> Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.GetFileStream(string path) -> System.IO.Stream +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PhysicalFileResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.RedirectResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToActionResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToActionResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToPageResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToPageResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToRouteResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToRouteResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.VirtualFileResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.VirtualFileResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.VirtualFileResultExecutor.GetFileStream(Microsoft.Extensions.FileProviders.IFileInfo fileInfo) -> System.IO.Stream +~virtual Microsoft.AspNetCore.Mvc.Infrastructure.VirtualFileResultExecutor.WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.VirtualFileResult result, Microsoft.Extensions.FileProviders.IFileInfo fileInfo, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ModelBinderAttribute.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~virtual Microsoft.AspNetCore.Mvc.ModelBinderAttribute.BindingSource.set -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.CanCreateInstance(System.Type targetType) -> bool +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.ConvertToCollectionType(System.Type targetType, System.Collections.Generic.IEnumerable collection) -> object +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.CopyToModel(object target, System.Collections.Generic.IEnumerable sourceCollection) -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.CreateEmptyCollection(System.Type targetType) -> object +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.BindProperty(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.CanBindProperty(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata propertyMetadata) -> bool +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.CreateModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> object +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.SetProperty(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, string modelName, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata propertyMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult result) -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder.CheckModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult valueProviderResult, object model) -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider.Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) -> Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.ContainsPrefix(string prefix) -> bool +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.GetKeysFromPrefix(string prefix) -> System.Collections.Generic.IDictionary +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.GetValue(string key) -> Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.DefaultPropertyFilterProvider.Prefix.get -> string +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.DefaultPropertyFilterProvider.PropertyFilter.get -> System.Func +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.DefaultPropertyFilterProvider.PropertyIncludeExpressions.get -> System.Collections.Generic.IEnumerable>> +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider.GetKeysFromPrefix(string prefix) -> System.Collections.Generic.IDictionary +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.CreateModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails entry) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.CreateParameterDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.CreatePropertyDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails[] +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.CreateTypeDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator.Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model) -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator.Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator.Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object container) -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder modelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object value) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder modelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object value, object container) -> System.Threading.Tasks.ValueTask +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider.GetKeysFromPrefix(string prefix) -> System.Collections.Generic.IDictionary +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.GetValidationEntry(object model) -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.SuppressValidation(string key) -> void +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel) -> bool +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container) -> bool +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) -> bool +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.VisitChildren(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy strategy) -> bool +~virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.VisitComplexType(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy defaultStrategy) -> bool +~virtual Microsoft.AspNetCore.Mvc.ObjectResult.OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.ProducesAttribute.OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.ProducesAttribute.OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.RequireHttpsAttribute.HandleNonHttpsRequest(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext filterContext) -> void +~virtual Microsoft.AspNetCore.Mvc.RequireHttpsAttribute.OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext filterContext) -> void +~virtual Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer.FilterAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary values, System.Collections.Generic.IReadOnlyList endpoints) -> System.Threading.Tasks.ValueTask> +~virtual Microsoft.AspNetCore.Mvc.Routing.UrlHelper.GenerateUrl(string protocol, string host, Microsoft.AspNetCore.Routing.VirtualPathData pathData, string fragment) -> string +~virtual Microsoft.AspNetCore.Mvc.Routing.UrlHelper.GetVirtualPathData(string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values) -> Microsoft.AspNetCore.Routing.VirtualPathData +~virtual Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.Content(string contentPath) -> string +~virtual Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.IsLocalUrl(string url) -> bool +~virtual Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase.Link(string routeName, object values) -> string diff --git a/src/Mvc/Mvc.Core/src/Routing/ControllerLinkGeneratorExtensions.cs b/src/Mvc/Mvc.Core/src/Routing/ControllerLinkGeneratorExtensions.cs index d15eaef020..f0b83af2e6 100644 --- a/src/Mvc/Mvc.Core/src/Routing/ControllerLinkGeneratorExtensions.cs +++ b/src/Mvc/Mvc.Core/src/Routing/ControllerLinkGeneratorExtensions.cs @@ -1,10 +1,11 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; +using System.Diagnostics.CodeAnalysis; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc.Routing; -using System; namespace Microsoft.AspNetCore.Routing { @@ -36,6 +37,7 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null if a URI cannot be created. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetPathByAction( this LinkGenerator generator, HttpContext httpContext, @@ -81,6 +83,7 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null if a URI cannot be created. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetPathByAction( this LinkGenerator generator, string action, @@ -146,6 +149,7 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetUriByAction( this LinkGenerator generator, HttpContext httpContext, @@ -205,6 +209,7 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetUriByAction( this LinkGenerator generator, string action, @@ -254,4 +259,4 @@ namespace Microsoft.AspNetCore.Routing return httpContext?.Features.Get()?.RouteValues; } } -} \ No newline at end of file +} diff --git a/src/Mvc/Mvc.Core/src/Routing/PageLinkGeneratorExtensions.cs b/src/Mvc/Mvc.Core/src/Routing/PageLinkGeneratorExtensions.cs index f1725f2fe0..3d74e2b07a 100644 --- a/src/Mvc/Mvc.Core/src/Routing/PageLinkGeneratorExtensions.cs +++ b/src/Mvc/Mvc.Core/src/Routing/PageLinkGeneratorExtensions.cs @@ -1,7 +1,8 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc.Routing; @@ -35,6 +36,7 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null if a URI cannot be created. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetPathByPage( this LinkGenerator generator, HttpContext httpContext, @@ -84,6 +86,7 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null if a URI cannot be created. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetPathByPage( this LinkGenerator generator, string page, @@ -143,6 +146,7 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetUriByPage( this LinkGenerator generator, HttpContext httpContext, @@ -202,6 +206,7 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string GetUriByPage( this LinkGenerator generator, string page, diff --git a/src/Mvc/Mvc.Cors/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Cors/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Cors/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Cors/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Cors/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..4abbb445f6 --- /dev/null +++ b/src/Mvc/Mvc.Cors/src/PublicAPI.Unshipped.txt @@ -0,0 +1,12 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter +Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter.Order.get -> int +Microsoft.Extensions.DependencyInjection.MvcCorsMvcCoreBuilderExtensions +~Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter.CorsAuthorizationFilter(Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider policyProvider) -> void +~Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter.CorsAuthorizationFilter(Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider policyProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter.OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter.PolicyName.get -> string +~Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter.PolicyName.set -> void +~static Microsoft.Extensions.DependencyInjection.MvcCorsMvcCoreBuilderExtensions.AddCors(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCorsMvcCoreBuilderExtensions.AddCors(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcCorsMvcCoreBuilderExtensions.ConfigureCors(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder diff --git a/src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..bc07acf903 --- /dev/null +++ b/src/Mvc/Mvc.DataAnnotations/src/PublicAPI.Unshipped.txt @@ -0,0 +1,38 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter +Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider +Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions +Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions.MvcDataAnnotationsLocalizationOptions() -> void +Microsoft.AspNetCore.Mvc.DataAnnotations.RequiredAttributeAdapter +Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapterProvider +Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapterProvider.ValidationAttributeAdapterProvider() -> void +Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationProviderAttribute +Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationProviderAttribute.ValidationProviderAttribute() -> void +Microsoft.AspNetCore.Mvc.HiddenInputAttribute +Microsoft.AspNetCore.Mvc.HiddenInputAttribute.DisplayValue.get -> bool +Microsoft.AspNetCore.Mvc.HiddenInputAttribute.DisplayValue.set -> void +Microsoft.AspNetCore.Mvc.HiddenInputAttribute.HiddenInputAttribute() -> void +Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcCoreBuilderExtensions +~Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase +~Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase.AttributeAdapterBase(TAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) -> void +~Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter.GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) -> string +~Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider.GetAttributeAdapter(System.ComponentModel.DataAnnotations.ValidationAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) -> Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter +~Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions.DataAnnotationLocalizerProvider -> System.Func +~Microsoft.AspNetCore.Mvc.DataAnnotations.RequiredAttributeAdapter.RequiredAttributeAdapter(System.ComponentModel.DataAnnotations.RequiredAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) -> void +~Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter +~Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter.Attribute.get -> TAttribute +~Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter.ValidationAttributeAdapter(TAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) -> void +~Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapterProvider.GetAttributeAdapter(System.ComponentModel.DataAnnotations.ValidationAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) -> Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter +~abstract Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase.GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) -> string +~abstract Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter.AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) -> void +~abstract Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationProviderAttribute.GetValidationAttributes() -> System.Collections.Generic.IEnumerable +~override Microsoft.AspNetCore.Mvc.DataAnnotations.RequiredAttributeAdapter.AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) -> void +~override Microsoft.AspNetCore.Mvc.DataAnnotations.RequiredAttributeAdapter.GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) -> string +~static Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter.MergeAttribute(System.Collections.Generic.IDictionary attributes, string key, string value) -> bool +~static Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcBuilderExtensions.AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcBuilderExtensions.AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcCoreBuilderExtensions.AddDataAnnotations(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcCoreBuilderExtensions.AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcCoreBuilderExtensions.AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~virtual Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter.GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, params object[] arguments) -> string diff --git a/src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..e03057efc8 --- /dev/null +++ b/src/Mvc/Mvc.Formatters.Json/src/PublicAPI.Unshipped.txt @@ -0,0 +1,13 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.JsonResult (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +Microsoft.AspNetCore.Mvc.JsonResult.StatusCode.get -> int? (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +Microsoft.AspNetCore.Mvc.JsonResult.StatusCode.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.ContentType.get -> string (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.ContentType.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.JsonResult(object value) -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.JsonResult(object value, object serializerSettings) -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.SerializerSettings.get -> object (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.SerializerSettings.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.Value.get -> object (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~Microsoft.AspNetCore.Mvc.JsonResult.Value.set -> void (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) +~override Microsoft.AspNetCore.Mvc.JsonResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Mvc.Core) diff --git a/src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..39ee932575 --- /dev/null +++ b/src/Mvc/Mvc.Formatters.Xml/src/PublicAPI.Unshipped.txt @@ -0,0 +1,137 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerable +Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerable.DelegatingEnumerable() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator +Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator.Current.get -> TWrapped +Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator.Dispose() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator.MoveNext() -> bool +Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator.Reset() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProvider +Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProviderFactory +Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable +Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider +Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProviderFactory +Microsoft.AspNetCore.Mvc.Formatters.Xml.MvcXmlOptions +Microsoft.AspNetCore.Mvc.Formatters.Xml.MvcXmlOptions.MvcXmlOptions() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper +Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper.ProblemDetailsWrapper() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper +Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper.SerializableErrorWrapper() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProvider +Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProvider.SerializableErrorWrapperProvider() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProviderFactory +Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProviderFactory.SerializableErrorWrapperProviderFactory() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetailsWrapper +Microsoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetailsWrapper.ValidationProblemDetailsWrapper() -> void +Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext +Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext.IsSerialization.get -> bool +Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderFactoriesExtensions +Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter +Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.MaxDepth.get -> int +Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.MaxDepth.set -> void +Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.XmlDataContractSerializerOutputFormatter() -> void +Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter +Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.MaxDepth.get -> int +Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.MaxDepth.set -> void +Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.XmlSerializerOutputFormatter() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DataMemberRequiredBindingMetadataProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DataMemberRequiredBindingMetadataProvider.DataMemberRequiredBindingMetadataProvider() -> void +Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions +virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.ExceptionPolicy.get -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.ExceptionPolicy.get -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +~Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerable.Add(object item) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerable.DelegatingEnumerable(System.Collections.Generic.IEnumerable source, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider elementWrapperProvider) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerable.GetEnumerator() -> System.Collections.Generic.IEnumerator +~Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator.DelegatingEnumerator(System.Collections.Generic.IEnumerator inner, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider wrapperProvider) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProvider.EnumerableWrapperProvider(System.Type sourceEnumerableOfT, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider elementWrapperProvider) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProvider.Wrap(object original) -> object +~Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProvider.WrappingType.get -> System.Type +~Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProviderFactory.EnumerableWrapperProviderFactory(System.Collections.Generic.IEnumerable wrapperProviderFactories) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProviderFactory.GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context) -> Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider +~Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable.Unwrap(System.Type declaredType) -> object +~Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider.Wrap(object original) -> object +~Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider.WrappingType.get -> System.Type +~Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProviderFactory.GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context) -> Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider +~Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper.GetSchema() -> System.Xml.Schema.XmlSchema +~Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper.ProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper.GetSchema() -> System.Xml.Schema.XmlSchema +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper.ReadXml(System.Xml.XmlReader reader) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper.SerializableError.get -> Microsoft.AspNetCore.Mvc.SerializableError +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper.SerializableErrorWrapper(Microsoft.AspNetCore.Mvc.SerializableError error) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper.Unwrap(System.Type declaredType) -> object +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper.WriteXml(System.Xml.XmlWriter writer) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProvider.Wrap(object original) -> object +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProvider.WrappingType.get -> System.Type +~Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProviderFactory.GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context) -> Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider +~Microsoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetailsWrapper.ValidationProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ValidationProblemDetails problemDetails) -> void +~Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext.DeclaredType.get -> System.Type +~Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext.WrapperProviderContext(System.Type declaredType, bool isSerialization) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.SerializerSettings.get -> System.Runtime.Serialization.DataContractSerializerSettings +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.SerializerSettings.set -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.WrapperProviderFactories.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.XmlDataContractSerializerInputFormatter(Microsoft.AspNetCore.Mvc.MvcOptions options) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.XmlDictionaryReaderQuotas.get -> System.Xml.XmlDictionaryReaderQuotas +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.SerializerSettings.get -> System.Runtime.Serialization.DataContractSerializerSettings +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.SerializerSettings.set -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.WrapperProviderFactories.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.WriterSettings.get -> System.Xml.XmlWriterSettings +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.XmlDataContractSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.XmlDataContractSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.XmlDataContractSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.WrapperProviderFactories.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.XmlDictionaryReaderQuotas.get -> System.Xml.XmlDictionaryReaderQuotas +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.XmlSerializerInputFormatter(Microsoft.AspNetCore.Mvc.MvcOptions options) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.WrapperProviderFactories.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.WriterSettings.get -> System.Xml.XmlWriterSettings +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.XmlSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.XmlSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) -> void +~Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.XmlSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DataMemberRequiredBindingMetadataProvider.CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) -> void +~override Microsoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetailsWrapper.ReadValue(System.Xml.XmlReader reader, string name) -> void +~override Microsoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetailsWrapper.WriteXml(System.Xml.XmlWriter writer) -> void +~override Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.CanReadType(System.Type type) -> bool +~override Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.CanWriteType(System.Type type) -> bool +~override Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.CanReadType(System.Type type) -> bool +~override Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.CanWriteType(System.Type type) -> bool +~override Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderFactoriesExtensions.GetWrapperProvider(this System.Collections.Generic.IEnumerable wrapperProviderFactories, Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext wrapperProviderContext) -> Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions.AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions.AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions.AddXmlOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions.AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions.AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions.AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions.AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions.AddXmlOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions.AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions.AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static readonly Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper.EmptyKey -> string +~virtual Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper.ReadValue(System.Xml.XmlReader reader, string name) -> void +~virtual Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper.ReadXml(System.Xml.XmlReader reader) -> void +~virtual Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper.WriteXml(System.Xml.XmlWriter writer) -> void +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.CreateSerializer(System.Type type) -> System.Runtime.Serialization.DataContractSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding) -> System.Xml.XmlReader +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.GetCachedSerializer(System.Type type) -> System.Runtime.Serialization.DataContractSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.GetSerializableType(System.Type declaredType) -> System.Type +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.CreateSerializer(System.Type type) -> System.Runtime.Serialization.DataContractSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.CreateXmlWriter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) -> System.Xml.XmlWriter +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.CreateXmlWriter(System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) -> System.Xml.XmlWriter +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.GetCachedSerializer(System.Type type) -> System.Runtime.Serialization.DataContractSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter.GetSerializableType(System.Type type) -> System.Type +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.CreateSerializer(System.Type type) -> System.Xml.Serialization.XmlSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding) -> System.Xml.XmlReader +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding, System.Type type) -> System.Xml.XmlReader +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.GetCachedSerializer(System.Type type) -> System.Xml.Serialization.XmlSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.GetSerializableType(System.Type declaredType) -> System.Type +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.CreateSerializer(System.Type type) -> System.Xml.Serialization.XmlSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.CreateXmlWriter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) -> System.Xml.XmlWriter +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.CreateXmlWriter(System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) -> System.Xml.XmlWriter +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.GetCachedSerializer(System.Type type) -> System.Xml.Serialization.XmlSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.GetSerializableType(System.Type type) -> System.Type +~virtual Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.Serialize(System.Xml.Serialization.XmlSerializer xmlSerializer, System.Xml.XmlWriter xmlWriter, object value) -> void diff --git a/src/Mvc/Mvc.Localization/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Localization/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Localization/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Localization/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Localization/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..a6865a8160 --- /dev/null +++ b/src/Mvc/Mvc.Localization/src/PublicAPI.Unshipped.txt @@ -0,0 +1,78 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer +Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer +Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerExtensions +Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerFactory +Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer +Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer +Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory +Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer +Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString.IsResourceNotFound.get -> bool +Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer +Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions +~Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.HtmlLocalizer(Microsoft.Extensions.Localization.IStringLocalizer localizer) -> void +~Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.HtmlLocalizer(Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory factory) -> void +~Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerFactory.HtmlLocalizerFactory(Microsoft.Extensions.Localization.IStringLocalizerFactory localizerFactory) -> void +~Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer.GetAllStrings(bool includeParentCultures) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer.GetString(string name) -> Microsoft.Extensions.Localization.LocalizedString +~Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer.GetString(string name, params object[] arguments) -> Microsoft.Extensions.Localization.LocalizedString +~Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer.this[string name, params object[] arguments].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer.this[string name].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory.Create(System.Type resourceSource) -> Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer +~Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory.Create(string baseName, string location) -> Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer +~Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString.LocalizedHtmlString(string name, string value) -> void +~Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString.LocalizedHtmlString(string name, string value, bool isResourceNotFound) -> void +~Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString.LocalizedHtmlString(string name, string value, bool isResourceNotFound, params object[] arguments) -> void +~Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString.Name.get -> string +~Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString.Value.get -> string +~Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer.Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> void +~Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer.GetAllStrings(bool includeParentCultures) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer.GetString(string name) -> Microsoft.Extensions.Localization.LocalizedString +~Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer.GetString(string name, params object[] values) -> Microsoft.Extensions.Localization.LocalizedString +~Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer.ViewLocalizer(Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory localizerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) -> void +~static Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerExtensions.GetAllStrings(this Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer htmlLocalizer) -> System.Collections.Generic.IEnumerable +~static Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerExtensions.GetHtml(this Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer htmlLocalizer, string name) -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~static Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerExtensions.GetHtml(this Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer htmlLocalizer, string name, params object[] arguments) -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, System.Action dataAnnotationsLocalizationOptionsSetupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions.AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.GetAllStrings(bool includeParentCultures) -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.GetString(string name) -> Microsoft.Extensions.Localization.LocalizedString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.GetString(string name, params object[] arguments) -> Microsoft.Extensions.Localization.LocalizedString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.ToHtmlString(Microsoft.Extensions.Localization.LocalizedString result) -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.ToHtmlString(Microsoft.Extensions.Localization.LocalizedString result, object[] arguments) -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.this[string name, params object[] arguments].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.this[string name].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.GetAllStrings(bool includeParentCultures) -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.GetString(string name) -> Microsoft.Extensions.Localization.LocalizedString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.GetString(string name, params object[] arguments) -> Microsoft.Extensions.Localization.LocalizedString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.this[string name, params object[] arguments].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.this[string name].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerFactory.Create(System.Type resourceSource) -> Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer +~virtual Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerFactory.Create(string baseName, string location) -> Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer +~virtual Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer.this[string key, params object[] arguments].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString +~virtual Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer.this[string key].get -> Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString diff --git a/src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..3b907d641b --- /dev/null +++ b/src/Mvc/Mvc.NewtonsoftJson/src/PublicAPI.Unshipped.txt @@ -0,0 +1,54 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter +Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonOutputFormatter +Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonPatchInputFormatter +Microsoft.AspNetCore.Mvc.JsonPatchExtensions +Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions +Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions.AllowInputFormatterExceptionMessages.get -> bool +Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions.AllowInputFormatterExceptionMessages.set -> void +Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions.InputFormatterMemoryBufferThreshold.get -> int +Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions.InputFormatterMemoryBufferThreshold.set -> void +Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions.MvcNewtonsoftJsonOptions() -> void +Microsoft.AspNetCore.Mvc.NewtonsoftJson.JsonSerializerSettingsProvider +Microsoft.AspNetCore.Mvc.NewtonsoftJson.ProblemDetailsConverter +Microsoft.AspNetCore.Mvc.NewtonsoftJson.ProblemDetailsConverter.ProblemDetailsConverter() -> void +Microsoft.AspNetCore.Mvc.NewtonsoftJson.ValidationProblemDetailsConverter +Microsoft.AspNetCore.Mvc.NewtonsoftJson.ValidationProblemDetailsConverter.ValidationProblemDetailsConverter() -> void +Microsoft.AspNetCore.Mvc.Rendering.JsonHelperExtensions +Microsoft.Extensions.DependencyInjection.MvcNewtonsoftJsonOptionsExtensions +Microsoft.Extensions.DependencyInjection.NewtonsoftJsonMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.NewtonsoftJsonMvcCoreBuilderExtensions +override Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonPatchInputFormatter.ExceptionPolicy.get -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +virtual Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.ExceptionPolicy.get -> Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy +~Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.NewtonsoftJsonInputFormatter(Microsoft.Extensions.Logging.ILogger logger, Newtonsoft.Json.JsonSerializerSettings serializerSettings, System.Buffers.ArrayPool charPool, Microsoft.Extensions.ObjectPool.ObjectPoolProvider objectPoolProvider, Microsoft.AspNetCore.Mvc.MvcOptions options, Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions jsonOptions) -> void +~Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.SerializerSettings.get -> Newtonsoft.Json.JsonSerializerSettings +~Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonOutputFormatter.NewtonsoftJsonOutputFormatter(Newtonsoft.Json.JsonSerializerSettings serializerSettings, System.Buffers.ArrayPool charPool, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) -> void +~Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonOutputFormatter.SerializerSettings.get -> Newtonsoft.Json.JsonSerializerSettings +~Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonPatchInputFormatter.NewtonsoftJsonPatchInputFormatter(Microsoft.Extensions.Logging.ILogger logger, Newtonsoft.Json.JsonSerializerSettings serializerSettings, System.Buffers.ArrayPool charPool, Microsoft.Extensions.ObjectPool.ObjectPoolProvider objectPoolProvider, Microsoft.AspNetCore.Mvc.MvcOptions options, Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions jsonOptions) -> void +~Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions.SerializerSettings.get -> Newtonsoft.Json.JsonSerializerSettings +~override Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonOutputFormatter.WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonPatchInputFormatter.CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) -> bool +~override Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonPatchInputFormatter.ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.NewtonsoftJson.ProblemDetailsConverter.CanConvert(System.Type objectType) -> bool +~override Microsoft.AspNetCore.Mvc.NewtonsoftJson.ProblemDetailsConverter.ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) -> object +~override Microsoft.AspNetCore.Mvc.NewtonsoftJson.ProblemDetailsConverter.WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) -> void +~override Microsoft.AspNetCore.Mvc.NewtonsoftJson.ValidationProblemDetailsConverter.CanConvert(System.Type objectType) -> bool +~override Microsoft.AspNetCore.Mvc.NewtonsoftJson.ValidationProblemDetailsConverter.ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) -> object +~override Microsoft.AspNetCore.Mvc.NewtonsoftJson.ValidationProblemDetailsConverter.WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) -> void +~static Microsoft.AspNetCore.Mvc.JsonPatchExtensions.ApplyTo(this Microsoft.AspNetCore.JsonPatch.JsonPatchDocument patchDoc, T objectToApplyTo, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~static Microsoft.AspNetCore.Mvc.JsonPatchExtensions.ApplyTo(this Microsoft.AspNetCore.JsonPatch.JsonPatchDocument patchDoc, T objectToApplyTo, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, string prefix) -> void +~static Microsoft.AspNetCore.Mvc.NewtonsoftJson.JsonSerializerSettingsProvider.CreateSerializerSettings() -> Newtonsoft.Json.JsonSerializerSettings +~static Microsoft.AspNetCore.Mvc.Rendering.JsonHelperExtensions.Serialize(this Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper jsonHelper, object value, Newtonsoft.Json.JsonSerializerSettings serializerSettings) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.Extensions.DependencyInjection.MvcNewtonsoftJsonOptionsExtensions.UseCamelCasing(this Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions options, bool processDictionaryKeys) -> Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions +~static Microsoft.Extensions.DependencyInjection.MvcNewtonsoftJsonOptionsExtensions.UseMemberCasing(this Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions options) -> Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions +~static Microsoft.Extensions.DependencyInjection.NewtonsoftJsonMvcBuilderExtensions.AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.NewtonsoftJsonMvcBuilderExtensions.AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.NewtonsoftJsonMvcCoreBuilderExtensions.AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.NewtonsoftJsonMvcCoreBuilderExtensions.AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~virtual Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.CreateJsonSerializer() -> Newtonsoft.Json.JsonSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.CreateJsonSerializer(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) -> Newtonsoft.Json.JsonSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.ReleaseJsonSerializer(Newtonsoft.Json.JsonSerializer serializer) -> void +~virtual Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonOutputFormatter.CreateJsonSerializer() -> Newtonsoft.Json.JsonSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonOutputFormatter.CreateJsonSerializer(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) -> Newtonsoft.Json.JsonSerializer +~virtual Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonOutputFormatter.CreateJsonWriter(System.IO.TextWriter writer) -> Newtonsoft.Json.JsonWriter diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..8fa91b1af0 --- /dev/null +++ b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/PublicAPI.Unshipped.txt @@ -0,0 +1,24 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPartExtensions +Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem +Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions +Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions.MvcRazorRuntimeCompilationOptions() -> void +Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions +override Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.Exists.get -> bool +~Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.FileInfo.get -> Microsoft.Extensions.FileProviders.IFileInfo +~Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.FileProviderRazorProjectItem(Microsoft.Extensions.FileProviders.IFileInfo fileInfo, string basePath, string filePath, string root) -> void +~Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.FileProviderRazorProjectItem(Microsoft.Extensions.FileProviders.IFileInfo fileInfo, string basePath, string filePath, string root, string fileKind) -> void +~Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions.AdditionalReferencePaths.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions.FileProviders.get -> System.Collections.Generic.IList +~override Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.BasePath.get -> string +~override Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.FileKind.get -> string +~override Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.FilePath.get -> string +~override Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.PhysicalPath.get -> string +~override Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.Read() -> System.IO.Stream +~override Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.FileProviderRazorProjectItem.RelativePhysicalPath.get -> string +~static Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPartExtensions.GetReferencePaths(this Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart assemblyPart) -> System.Collections.Generic.IEnumerable +~static Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcBuilderExtensions.AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcBuilderExtensions.AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder diff --git a/src/Mvc/Mvc.Razor/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Razor/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Razor/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Razor/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Razor/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..a4f908eacd --- /dev/null +++ b/src/Mvc/Mvc.Razor/src/PublicAPI.Unshipped.txt @@ -0,0 +1,264 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory +Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory.CompiledRazorAssemblyApplicationPartFactory() -> void +Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyPart +Microsoft.AspNetCore.Mvc.ApplicationParts.IRazorCompiledItemProvider +Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData +Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor +Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.CompiledViewDescriptor() -> void +Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler +Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompilerProvider +Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute +Microsoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeature +Microsoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeature.ViewsFeature() -> void +Microsoft.AspNetCore.Mvc.Razor.HelperResult +Microsoft.AspNetCore.Mvc.Razor.IRazorPage +Microsoft.AspNetCore.Mvc.Razor.IRazorPage.EnsureRenderedBodyOrSections() -> void +Microsoft.AspNetCore.Mvc.Razor.IRazorPage.IsLayoutBeingRendered.get -> bool +Microsoft.AspNetCore.Mvc.Razor.IRazorPage.IsLayoutBeingRendered.set -> void +Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator +Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider +Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine +Microsoft.AspNetCore.Mvc.Razor.ITagHelperActivator +Microsoft.AspNetCore.Mvc.Razor.ITagHelperFactory +Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander +Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider +Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.TagHelperMemoryCacheProvider() -> void +Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute +Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute.RazorInjectAttribute() -> void +Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpander +Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpander.LanguageViewLocationExpander() -> void +Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpander.LanguageViewLocationExpander(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) -> void +Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat +Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat.SubFolder = 0 -> Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat +Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix = 1 -> Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat +Microsoft.AspNetCore.Mvc.Razor.RazorPage +Microsoft.AspNetCore.Mvc.Razor.RazorPage.IgnoreBody() -> void +Microsoft.AspNetCore.Mvc.Razor.RazorPage.RazorPage() -> void +Microsoft.AspNetCore.Mvc.Razor.RazorPage +Microsoft.AspNetCore.Mvc.Razor.RazorPage.Model.get -> TModel +Microsoft.AspNetCore.Mvc.Razor.RazorPage.RazorPage() -> void +Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator +Microsoft.AspNetCore.Mvc.Razor.RazorPageBase +Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.BeginWriteTagHelperAttribute() -> void +Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.IsLayoutBeingRendered.get -> bool +Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.IsLayoutBeingRendered.set -> void +Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.RazorPageBase() -> void +Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.ViewBag.get -> dynamic +Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult +Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult.Success.get -> bool +Microsoft.AspNetCore.Mvc.Razor.RazorPageResult +Microsoft.AspNetCore.Mvc.Razor.RazorView +Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine +Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions +Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions.RazorViewEngineOptions() -> void +Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeature +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeature.TagHelperFeature() -> void +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeatureProvider +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeatureProvider.TagHelperFeatureProvider() -> void +Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper +Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext +Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.IsMainPage.get -> bool +Microsoft.Extensions.DependencyInjection.MvcRazorMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions +abstract Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.BeginContext(int position, int length, bool isLiteral) -> void +abstract Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.EndContext() -> void +abstract Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.EnsureRenderedBodyOrSections() -> void +override Microsoft.AspNetCore.Mvc.Razor.RazorPage.BeginContext(int position, int length, bool isLiteral) -> void +override Microsoft.AspNetCore.Mvc.Razor.RazorPage.EndContext() -> void +override Microsoft.AspNetCore.Mvc.Razor.RazorPage.EnsureRenderedBodyOrSections() -> void +override Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.Order.get -> int +virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.EndWriteAttribute() -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyPart.Assembly.get -> System.Reflection.Assembly +~Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyPart.CompiledRazorAssemblyPart(System.Reflection.Assembly assembly) -> void +~Microsoft.AspNetCore.Mvc.ApplicationParts.IRazorCompiledItemProvider.CompiledItems.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData.AfterViewPageEventData(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData.Page.get -> Microsoft.AspNetCore.Mvc.Razor.IRazorPage +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData.BeforeViewPageEventData(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData.Page.get -> Microsoft.AspNetCore.Mvc.Razor.IRazorPage +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item) -> void +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item, Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute attribute) -> void +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.ExpirationTokens.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.ExpirationTokens.set -> void +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.Item.get -> Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.Item.set -> void +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.RelativePath.get -> string +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.RelativePath.set -> void +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.Type.get -> System.Type +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.ViewAttribute.get -> Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute +~Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor.ViewAttribute.set -> void +~Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler.CompileAsync(string relativePath) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompilerProvider.GetCompiler() -> Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler +~Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute.Path.get -> string +~Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute.RazorViewAttribute(string path, System.Type viewType) -> void +~Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute.ViewType.get -> System.Type +~Microsoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeature.ViewDescriptors.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.HelperResult.HelperResult(System.Func asyncAction) -> void +~Microsoft.AspNetCore.Mvc.Razor.HelperResult.WriteAction.get -> System.Func +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.BodyContent.get -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.BodyContent.set -> void +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.ExecuteAsync() -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.Layout.get -> string +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.Layout.set -> void +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.Path.get -> string +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.Path.set -> void +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.PreviousSectionWriters.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.PreviousSectionWriters.set -> void +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.SectionWriters.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Razor.IRazorPage.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator.Activate(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> void +~Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider.CreateFactory(string relativePath) -> Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult +~Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine.FindPage(Microsoft.AspNetCore.Mvc.ActionContext context, string pageName) -> Microsoft.AspNetCore.Mvc.Razor.RazorPageResult +~Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine.GetAbsolutePath(string executingFilePath, string pagePath) -> string +~Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine.GetPage(string executingFilePath, string pagePath) -> Microsoft.AspNetCore.Mvc.Razor.RazorPageResult +~Microsoft.AspNetCore.Mvc.Razor.ITagHelperActivator.Create(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> TTagHelper +~Microsoft.AspNetCore.Mvc.Razor.ITagHelperFactory.CreateTagHelper(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> TTagHelper +~Microsoft.AspNetCore.Mvc.Razor.ITagHelperInitializer +~Microsoft.AspNetCore.Mvc.Razor.ITagHelperInitializer.Initialize(TTagHelper helper, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> void +~Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander.ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander.PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) -> void +~Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.Cache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpander.PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.Context.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.IgnoreSection(string sectionName) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.IsSectionDefined(string name) -> bool +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.RenderSection(string name) -> Microsoft.AspNetCore.Html.HtmlString +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.RenderSection(string name, bool required) -> Microsoft.AspNetCore.Html.HtmlString +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.RenderSectionAsync(string name) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.RenderSectionAsync(string name, bool required) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.Razor.RazorPage.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator.Activate(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator.RazorPageActivator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper jsonHelper, System.Diagnostics.DiagnosticSource diagnosticSource, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider modelExpressionProvider) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.AddHtmlAttributeValue(string prefix, int prefixOffset, object value, int valueOffset, int valueLength, bool isLiteral) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.BeginAddHtmlAttributeValues(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext, string attributeName, int attributeValuesCount, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle attributeValueStyle) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.BodyContent.get -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.BodyContent.set -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.CreateTagHelper() -> TTagHelper +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.DefineSection(string name, System.Func section) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.DiagnosticSource.get -> System.Diagnostics.DiagnosticSource +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.DiagnosticSource.set -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.EndAddHtmlAttributeValues(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.EndTagHelperWritingScope() -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.EndWriteTagHelperAttribute() -> string +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.HtmlEncoder.get -> System.Text.Encodings.Web.HtmlEncoder +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.HtmlEncoder.set -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.InvalidTagHelperIndexerAssignment(string attributeName, string tagHelperTypeName, string propertyName) -> string +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Layout.get -> string +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Layout.set -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Path.get -> string +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Path.set -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.PreviousSectionWriters.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.PreviousSectionWriters.set -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.SectionWriters.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.StartTagHelperWritingScope(System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.WriteAttributeValue(string prefix, int prefixOffset, object value, int valueOffset, int valueLength, bool isLiteral) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult.RazorPageFactory.get -> System.Func +~Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult.RazorPageFactoryResult(Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor viewDescriptor, System.Func razorPageFactory) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult.ViewDescriptor.get -> Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor +~Microsoft.AspNetCore.Mvc.Razor.RazorPageResult.Name.get -> string +~Microsoft.AspNetCore.Mvc.Razor.RazorPageResult.Page.get -> Microsoft.AspNetCore.Mvc.Razor.IRazorPage +~Microsoft.AspNetCore.Mvc.Razor.RazorPageResult.RazorPageResult(string name, Microsoft.AspNetCore.Mvc.Razor.IRazorPage page) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageResult.RazorPageResult(string name, System.Collections.Generic.IEnumerable searchedLocations) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorPageResult.SearchedLocations.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Razor.RazorView.Path.get -> string +~Microsoft.AspNetCore.Mvc.Razor.RazorView.RazorPage.get -> Microsoft.AspNetCore.Mvc.Razor.IRazorPage +~Microsoft.AspNetCore.Mvc.Razor.RazorView.RazorView(Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine viewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator pageActivator, System.Collections.Generic.IReadOnlyList viewStartPages, Microsoft.AspNetCore.Mvc.Razor.IRazorPage razorPage, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Diagnostics.DiagnosticListener diagnosticListener) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorView.ViewStartPages.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.FindPage(Microsoft.AspNetCore.Mvc.ActionContext context, string pageName) -> Microsoft.AspNetCore.Mvc.Razor.RazorPageResult +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.FindView(Microsoft.AspNetCore.Mvc.ActionContext context, string viewName, bool isMainPage) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.GetAbsolutePath(string executingFilePath, string pagePath) -> string +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.GetPage(string executingFilePath, string pagePath) -> Microsoft.AspNetCore.Mvc.Razor.RazorPageResult +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.GetView(string executingFilePath, string viewPath, bool isMainPage) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.RazorViewEngine(Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider pageFactory, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator pageActivator, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Diagnostics.DiagnosticListener diagnosticListener) -> void +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.ViewLookupCache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions.AreaPageViewLocationFormats.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions.AreaViewLocationFormats.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions.PageViewLocationFormats.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions.ViewLocationExpanders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions.ViewLocationFormats.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.TagHelperInitializer +~Microsoft.AspNetCore.Mvc.Razor.TagHelperInitializer.Initialize(TTagHelper helper, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelperInitializer.TagHelperInitializer(System.Action action) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper.BodyTagHelper(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager manager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper.HeadTagHelper(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager manager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager.Components.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator.Activate(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context, Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent tagHelperComponent) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper.PropertyActivator.get -> Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper.PropertyActivator.set -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper.TagHelperComponentTagHelper(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager manager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeature.TagHelpers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeatureProvider.PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeature feature) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.HtmlEncoder.get -> System.Text.Encodings.Web.HtmlEncoder +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.ProcessUrlAttribute(string attributeName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.TryResolveUrl(string url, out Microsoft.AspNetCore.Html.IHtmlContent resolvedUrl) -> bool +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.TryResolveUrl(string url, out string resolvedUrl) -> bool +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.UrlHelperFactory.get -> Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.UrlResolutionTagHelper(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.AreaName.get -> string +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.ControllerName.get -> string +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.PageName.get -> string +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.Values.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.Values.set -> void +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.ViewLocationExpanderContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, string viewName, string controllerName, string areaName, string pageName, bool isMainPage) -> void +~Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext.ViewName.get -> string +~abstract Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.ExecuteAsync() -> System.Threading.Tasks.Task +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData.EventName = "Microsoft.AspNetCore.Mvc.Razor.AfterViewPage" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData.EventName = "Microsoft.AspNetCore.Mvc.Razor.BeforeViewPage" -> string +~override Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory.GetApplicationParts(System.Reflection.Assembly assembly) -> System.Collections.Generic.IEnumerable +~override Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyPart.Name.get -> string +~override Microsoft.AspNetCore.Mvc.Razor.RazorPage.DefineSection(string name, Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate section) -> void +~override Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~override Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~static Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory.GetDefaultApplicationParts(System.Reflection.Assembly assembly) -> System.Collections.Generic.IEnumerable +~static Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.GetNormalizedRouteValue(Microsoft.AspNetCore.Mvc.ActionContext context, string key) -> string +~static Microsoft.Extensions.DependencyInjection.MvcRazorMvcBuilderExtensions.AddRazorOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorMvcBuilderExtensions.AddTagHelpersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorMvcBuilderExtensions.InitializeTagHelper(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action initialize) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions.AddRazorViewEngine(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions.AddRazorViewEngine(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions.AddTagHelpersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions.InitializeTagHelper(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action initialize) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static readonly Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.ViewExtension -> string +~virtual Microsoft.AspNetCore.Mvc.Razor.HelperResult.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpander.ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations) -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPage.RenderBody() -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.BeginWriteAttribute(string name, string prefix, int prefixOffset, string suffix, int suffixOffset, int attributeValuesCount) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.DefineSection(string name, Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate section) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.FlushAsync() -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Href(string contentPath) -> string +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Output.get -> System.IO.TextWriter +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.PopWriter() -> System.IO.TextWriter +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.PushWriter(System.IO.TextWriter writer) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.SetAntiforgeryCookieAndHeader() -> Microsoft.AspNetCore.Html.HtmlString +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.User.get -> System.Security.Claims.ClaimsPrincipal +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.ViewContext.set -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Write(object value) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.Write(string value) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.WriteLiteral(object value) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorPageBase.WriteLiteral(string value) -> void +~virtual Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeatureProvider.IncludePart(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart part) -> bool +~virtual Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeatureProvider.IncludeType(System.Reflection.TypeInfo type) -> bool diff --git a/src/Mvc/Mvc.RazorPages/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.RazorPages/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.RazorPages/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.RazorPages/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.RazorPages/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..77ee76129d --- /dev/null +++ b/src/Mvc/Mvc.RazorPages/src/PublicAPI.Unshipped.txt @@ -0,0 +1,638 @@ +#nullable enable +Microsoft.AspNetCore.Builder.PageActionEndpointConventionBuilder +Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageHandlerModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelProvider +Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel +Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext +Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.PageConventionCollection() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel +Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel +Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel +Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteMetadata +Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel +Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext +Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext.PageRouteModelProviderContext() -> void +Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteTransformerConvention +Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData +Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter +Microsoft.AspNetCore.Mvc.Filters.IPageFilter +Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext +Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext +Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate +Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext +Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.CompiledPageActionDescriptor() -> void +Microsoft.AspNetCore.Mvc.RazorPages.IPageActivatorProvider +Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider +Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider +Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.HandlerMethodDescriptor() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerParameterDescriptor +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerParameterDescriptor.HandlerParameterDescriptor() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider.Order.set -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageBoundPropertyDescriptor +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageBoundPropertyDescriptor.PageBoundPropertyDescriptor() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader.PageLoader() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageModelAttribute +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageModelAttribute.PageModelAttribute() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageResultExecutor +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageViewLocationExpander +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageViewLocationExpander.PageViewLocationExpander() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.EnsureRenderedBodyOrSections() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.IsLayoutBeingRendered.get -> bool +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.IsLayoutBeingRendered.set -> void +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAttribute +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ServiceBasedPageModelActivatorProvider +Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ServiceBasedPageModelActivatorProvider.ServiceBasedPageModelActivatorProvider() -> void +Microsoft.AspNetCore.Mvc.RazorPages.NonHandlerAttribute +Microsoft.AspNetCore.Mvc.RazorPages.NonHandlerAttribute.NonHandlerAttribute() -> void +Microsoft.AspNetCore.Mvc.RazorPages.Page +Microsoft.AspNetCore.Mvc.RazorPages.Page.Page() -> void +Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor +Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.PageActionDescriptor() -> void +Microsoft.AspNetCore.Mvc.RazorPages.PageBase +Microsoft.AspNetCore.Mvc.RazorPages.PageBase.PageBase() -> void +Microsoft.AspNetCore.Mvc.RazorPages.PageContext +Microsoft.AspNetCore.Mvc.RazorPages.PageContext.PageContext() -> void +Microsoft.AspNetCore.Mvc.RazorPages.PageContextAttribute +Microsoft.AspNetCore.Mvc.RazorPages.PageContextAttribute.PageContextAttribute() -> void +Microsoft.AspNetCore.Mvc.RazorPages.PageModel +Microsoft.AspNetCore.Mvc.RazorPages.PageModel.PageModel() -> void +Microsoft.AspNetCore.Mvc.RazorPages.PageResult +Microsoft.AspNetCore.Mvc.RazorPages.PageResult.PageResult() -> void +Microsoft.AspNetCore.Mvc.RazorPages.PageResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.RazorPages.PageResult.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions +Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.RazorPagesOptions() -> void +Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcCoreBuilderExtensions +Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions +override Microsoft.AspNetCore.Mvc.RazorPages.PageBase.BeginContext(int position, int length, bool isLiteral) -> void +override Microsoft.AspNetCore.Mvc.RazorPages.PageBase.EndContext() -> void +override Microsoft.AspNetCore.Mvc.RazorPages.PageBase.EnsureRenderedBodyOrSections() -> void +virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.Canceled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.Canceled.set -> void +virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.ExceptionHandled.get -> bool +virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.ExceptionHandled.set -> void +~Microsoft.AspNetCore.Builder.PageActionEndpointConventionBuilder.Add(System.Action convention) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel model) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider.CreateHandlerModel(System.Reflection.MethodInfo method) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider.CreateParameterModel(System.Reflection.ParameterInfo parameter) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider.CreatePropertyModel(System.Reflection.PropertyInfo property) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider.IsHandler(System.Reflection.MethodInfo methodInfo) -> bool +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageHandlerModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel model) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel model) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.AreaName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.DeclaredModelType.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.EndpointMetadata.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.Filters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.HandlerMethods.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.HandlerProperties.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.HandlerType.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.HandlerTypeAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.ModelType.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.ModelType.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.PageApplicationModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.PageApplicationModel(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, System.Reflection.TypeInfo declaredModelType, System.Reflection.TypeInfo handlerType, System.Collections.Generic.IReadOnlyList handlerAttributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.PageApplicationModel(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, System.Reflection.TypeInfo handlerType, System.Collections.Generic.IReadOnlyList handlerAttributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.PageType.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.PageType.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.RelativePath.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.RouteTemplate.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel.ViewEnginePath.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext.PageApplicationModel.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext.PageApplicationModel.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext.PageApplicationModelProviderContext(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor descriptor, System.Reflection.TypeInfo pageTypeInfo) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext.PageType.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddAreaFolderApplicationModelConvention(string areaName, string folderPath, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddAreaFolderRouteModelConvention(string areaName, string folderPath, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddAreaPageApplicationModelConvention(string areaName, string pageName, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddAreaPageRouteModelConvention(string areaName, string pageName, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddFolderApplicationModelConvention(string folderPath, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddFolderRouteModelConvention(string folderPath, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddPageApplicationModelConvention(string pageName, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.AddPageRouteModelConvention(string pageName, System.Action action) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.PageConventionCollection(System.Collections.Generic.IList conventions) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.RemoveType(System.Type pageConventionType) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection.RemoveType() -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.HandlerName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.HandlerName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.HttpMethod.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.HttpMethod.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.MethodInfo.get -> System.Reflection.MethodInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.Name.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.Name.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.Page.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.Page.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.PageHandlerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.PageHandlerModel(System.Reflection.MethodInfo handlerMethod, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.Parameters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel.Handler.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel.Handler.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel.PageParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel.PageParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel.ParameterInfo.get -> System.Reflection.ParameterInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel.ParameterName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel.ParameterName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel.Page.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel +~Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel.Page.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel.PagePropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel.PagePropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList attributes) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel.PropertyInfo.get -> System.Reflection.PropertyInfo +~Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel.PropertyName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel.PropertyName.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteMetadata.PageRoute.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteMetadata.PageRouteMetadata(string pageRoute, string routeTemplate) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteMetadata.RouteTemplate.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.AreaName.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.PageRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel other) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.PageRouteModel(string relativePath, string viewEnginePath) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.PageRouteModel(string relativePath, string viewEnginePath, string areaName) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.RelativePath.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.RouteParameterTransformer.get -> Microsoft.AspNetCore.Routing.IOutboundParameterTransformer +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.RouteParameterTransformer.set -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.RouteValues.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.Selectors.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel.ViewEnginePath.get -> string +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext.RouteModels.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteTransformerConvention.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel model) -> void +~Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteTransformerConvention.PageRouteTransformerConvention(Microsoft.AspNetCore.Routing.IOutboundParameterTransformer parameterTransformer) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData.AfterHandlerMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethodDescriptor, object instance, Microsoft.AspNetCore.Mvc.IActionResult result) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData.Arguments.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData.HandlerMethodDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData.Instance.get -> object +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData.AfterPageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData.HandlerExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData.AfterPageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData.HandlerExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData.AfterPageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData.HandlerExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData.AfterPageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData.HandlerSelectedContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData.AfterPageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData.HandlerSelectedContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData.Arguments.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData.BeforeHandlerMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethodDescriptor, object instance) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData.HandlerMethodDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData.Instance.get -> object +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData.BeforePageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData.HandlerExecutedContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData.BeforePageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData.HandlerExecutingContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData.BeforePageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutionContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData.HandlerExecutionContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData.BeforePageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData.HandlerSelectedContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData.BeforePageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData.Filter.get -> Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData.HandlerSelectedContext.get -> Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext +~Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter.OnPageHandlerExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate next) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter.OnPageHandlerSelectionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Filters.IPageFilter.OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context) -> void +~Microsoft.AspNetCore.Mvc.Filters.IPageFilter.OnPageHandlerExecuting(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context) -> void +~Microsoft.AspNetCore.Mvc.Filters.IPageFilter.OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) -> void +~Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.PageHandlerExecutedContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethod, object handlerInstance) -> void +~Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext.PageHandlerExecutingContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethod, System.Collections.Generic.IDictionary handlerArguments, object handlerInstance) -> void +~Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext.PageHandlerSelectedContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, object handlerInstance) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.CompiledPageActionDescriptor(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.DeclaredModelTypeInfo.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.DeclaredModelTypeInfo.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.Endpoint.get -> Microsoft.AspNetCore.Http.Endpoint +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.Endpoint.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.HandlerMethods.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.HandlerMethods.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.HandlerTypeInfo.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.HandlerTypeInfo.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.ModelTypeInfo.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.ModelTypeInfo.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.PageTypeInfo.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor.PageTypeInfo.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.IPageActivatorProvider.CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.RazorPages.IPageActivatorProvider.CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider.CreatePageDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider.CreatePageFactory(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider.CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider.CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider.CreateModelDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider.CreateModelFactory(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.HttpMethod.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.HttpMethod.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.MethodInfo.get -> System.Reflection.MethodInfo +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.MethodInfo.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.Name.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.Name.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.Parameters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor.Parameters.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerParameterDescriptor.ParameterInfo.get -> System.Reflection.ParameterInfo +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerParameterDescriptor.ParameterInfo.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector.Select(Microsoft.AspNetCore.Mvc.RazorPages.PageContext context) -> Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader.Load(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider.BuildModel() -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider.OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider.OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider.PageActionDescriptorProvider(System.Collections.Generic.IEnumerable pageRouteModelProviders, Microsoft.Extensions.Options.IOptions mvcOptionsAccessor, Microsoft.Extensions.Options.IOptions pagesOptionsAccessor) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageBoundPropertyDescriptor.Property.get -> System.Reflection.PropertyInfo +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageBoundPropertyDescriptor.Property.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageResultExecutor.PageResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine compositeViewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine razorViewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator razorPageActivator, System.Diagnostics.DiagnosticListener diagnosticListener, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageViewLocationExpander.ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageViewLocationExpander.PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.BodyContent.get -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.BodyContent.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.ExecuteAsync() -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.Layout.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.Layout.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.Path.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.Path.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.PreviousSectionWriters.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.PreviousSectionWriters.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.RazorPageAdapter(Microsoft.AspNetCore.Mvc.Razor.RazorPageBase page, System.Type modelType) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.SectionWriters.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAttribute.RazorPageAttribute(string path, System.Type viewType, string routeTemplate) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAttribute.RouteTemplate.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ServiceBasedPageModelActivatorProvider.CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Func +~Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ServiceBasedPageModelActivatorProvider.CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.AreaName.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.AreaName.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.PageActionDescriptor(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor other) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.RelativePath.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.RelativePath.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.ViewEnginePath.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.ViewEnginePath.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.MetadataProvider.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.PageContext.get -> Microsoft.AspNetCore.Mvc.RazorPages.PageContext +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.PageContext.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Request.get -> Microsoft.AspNetCore.Http.HttpRequest +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Response.get -> Microsoft.AspNetCore.Http.HttpResponse +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(TModel model, string prefix, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(TModel model, string prefix, params System.Linq.Expressions.Expression>[] includeExpressions) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageContext.PageContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext) -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.MetadataProvider.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.PageContext.get -> Microsoft.AspNetCore.Mvc.RazorPages.PageContext +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.PageContext.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Redirect(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Request.get -> Microsoft.AspNetCore.Http.HttpRequest +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Response.get -> Microsoft.AspNetCore.Http.HttpResponse +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TempData.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(object model, System.Type modelType, string name) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(object model, System.Type modelType, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(TModel model) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(TModel model, string name) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(TModel model, string name, System.Func propertyFilter) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryUpdateModelAsync(TModel model, string name, params System.Linq.Expressions.Expression>[] includeExpressions) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Url.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Url.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.User.get -> System.Security.Claims.ClaimsPrincipal +~Microsoft.AspNetCore.Mvc.RazorPages.PageModel.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.RazorPages.PageResult.ContentType.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.PageResult.ContentType.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageResult.Model.get -> object +~Microsoft.AspNetCore.Mvc.RazorPages.PageResult.Page.get -> Microsoft.AspNetCore.Mvc.RazorPages.PageBase +~Microsoft.AspNetCore.Mvc.RazorPages.PageResult.Page.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.PageResult.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.RazorPages.PageResult.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.Conventions.get -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.RootDirectory.get -> string +~Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.RootDirectory.set -> void +~abstract Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader.LoadAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) -> System.Threading.Tasks.Task +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterHandlerMethod" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnPageHandlerExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnPageHandlerExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnPageHandlerExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnPageHandlerSelected" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterOnPageHandlerSelection" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeHandlerMethod" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnPageHandlerExecuted" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnPageHandlerExecuting" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnPageHandlerExecution" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnPageHandlerSelected" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeOnPageHandlerSelection" -> string +~override Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.DisplayName.get -> string +~override Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor.DisplayName.set -> void +~override Microsoft.AspNetCore.Mvc.RazorPages.PageBase.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~override Microsoft.AspNetCore.Mvc.RazorPages.PageBase.ViewContext.set -> void +~override Microsoft.AspNetCore.Mvc.RazorPages.PageResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapDynamicPageRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) -> void +~static Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapDynamicPageRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state) -> void +~static Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapFallbackToAreaPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string page, string area) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapFallbackToAreaPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string page, string area) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapFallbackToPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string page) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapFallbackToPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string page) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapRazorPages(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints) -> Microsoft.AspNetCore.Builder.PageActionEndpointConventionBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcBuilderExtensions.AddRazorPagesOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcBuilderExtensions.WithRazorPagesAtContentRoot(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcBuilderExtensions.WithRazorPagesRoot(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, string rootDirectory) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcCoreBuilderExtensions.AddRazorPages(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcCoreBuilderExtensions.AddRazorPages(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcCoreBuilderExtensions.WithRazorPagesRoot(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, string rootDirectory) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.Add(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention convention) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AddAreaPageRoute(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName, string route) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AddPageRoute(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName, string route) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AllowAnonymousToAreaFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string folderPath) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AllowAnonymousToAreaPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AllowAnonymousToFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string folderPath) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AllowAnonymousToPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizeAreaFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string folderPath) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizeAreaFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string folderPath, string policy) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizeAreaPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizeAreaPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName, string policy) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizeFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string folderPath) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizeFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string folderPath, string policy) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizePage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.AuthorizePage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName, string policy) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.ConfigureFilter(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) -> Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection +~static Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions.ConfigureFilter(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, System.Func factory) -> Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention +~virtual Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteTransformerConvention.ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel action) -> bool +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.Exception.get -> System.Exception +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.Exception.set -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.ExceptionDispatchInfo.get -> System.Runtime.ExceptionServices.ExceptionDispatchInfo +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.ExceptionDispatchInfo.set -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.HandlerInstance.get -> object +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.HandlerMethod.get -> Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext.Result.set -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext.HandlerArguments.get -> System.Collections.Generic.IDictionary +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext.HandlerInstance.get -> object +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext.HandlerMethod.get -> Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext.Result.get -> Microsoft.AspNetCore.Mvc.IActionResult +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext.Result.set -> void +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext.HandlerInstance.get -> object +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext.HandlerMethod.get -> Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor +~virtual Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext.HandlerMethod.set -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, Microsoft.AspNetCore.Mvc.RazorPages.PageResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.BadRequest() -> Microsoft.AspNetCore.Mvc.BadRequestResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> Microsoft.AspNetCore.Mvc.BadRequestObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.BadRequest(object error) -> Microsoft.AspNetCore.Mvc.BadRequestObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Challenge() -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Challenge(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Content(string content) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Content(string content, string contentType) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Content(string content, string contentType, System.Text.Encoding contentEncoding) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.File(System.IO.Stream fileStream, string contentType) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.File(System.IO.Stream fileStream, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.File(byte[] fileContents, string contentType) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.File(byte[] fileContents, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.File(string virtualPath, string contentType) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.File(string virtualPath, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Forbid() -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Forbid(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.LocalRedirect(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.LocalRedirectPermanent(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.LocalRedirectPermanentPreserveMethod(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.LocalRedirectPreserveMethod(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.NotFound() -> Microsoft.AspNetCore.Mvc.NotFoundResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.NotFound(object value) -> Microsoft.AspNetCore.Mvc.NotFoundObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Page() -> Microsoft.AspNetCore.Mvc.RazorPages.PageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Partial(string viewName) -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Partial(string viewName, object model) -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.PhysicalFile(string physicalPath, string contentType) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.PhysicalFile(string physicalPath, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Redirect(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectPermanent(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectPermanentPreserveMethod(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectPreserveMethod(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToAction(string actionName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToAction(string actionName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToAction(string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToAction(string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToAction(string actionName, string controllerName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPermanent(string actionName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPermanent(string actionName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPermanent(string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPermanent(string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPermanent(string actionName, string controllerName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPermanent(string actionName, string controllerName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPermanentPreserveMethod(string actionName = null, string controllerName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToActionPreserveMethod(string actionName = null, string controllerName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPage() -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPage(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPage(string pageName) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPage(string pageName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPage(string pageName, string pageHandler) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPage(string pageName, string pageHandler, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePermanent(string pageName) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePermanent(string pageName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePermanent(string pageName, string pageHandler) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePermanent(string pageName, string pageHandler, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePermanent(string pageName, string pageHandler, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePermanentPreserveMethod(string pageName = null, string pageHandler = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToPagePreserveMethod(string pageName = null, string pageHandler = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoute(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoute(string routeName) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoute(string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoute(string routeName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoute(string routeName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoutePermanent(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoutePermanent(string routeName) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoutePermanent(string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoutePermanent(string routeName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoutePermanent(string routeName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoutePermanentPreserveMethod(string routeName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.RedirectToRoutePreserveMethod(string routeName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.SignIn(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.SignOut(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.StatusCode(int statusCode) -> Microsoft.AspNetCore.Mvc.StatusCodeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.StatusCode(int statusCode, object value) -> Microsoft.AspNetCore.Mvc.ObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(object model, System.Type modelType, string prefix) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(TModel model) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(TModel model, string prefix) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryValidateModel(object model) -> bool +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.TryValidateModel(object model, string prefix) -> bool +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.Unauthorized() -> Microsoft.AspNetCore.Mvc.UnauthorizedResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.ViewComponent(System.Type componentType) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.ViewComponent(System.Type componentType, object arguments) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.ViewComponent(string componentName) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageBase.ViewComponent(string componentName, object arguments) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ActionDescriptor.set -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ValueProviderFactories.get -> System.Collections.Generic.IList +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ValueProviderFactories.set -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ViewData.set -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ViewStartFactories.get -> System.Collections.Generic.IList> +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageContext.ViewStartFactories.set -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.BadRequest() -> Microsoft.AspNetCore.Mvc.BadRequestResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> Microsoft.AspNetCore.Mvc.BadRequestObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.BadRequest(object error) -> Microsoft.AspNetCore.Mvc.BadRequestObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Challenge() -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Challenge(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ChallengeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Content(string content) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Content(string content, string contentType) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Content(string content, string contentType, System.Text.Encoding contentEncoding) -> Microsoft.AspNetCore.Mvc.ContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.File(System.IO.Stream fileStream, string contentType) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.File(System.IO.Stream fileStream, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.FileStreamResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.File(byte[] fileContents, string contentType) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.File(byte[] fileContents, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.FileContentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.File(string virtualPath, string contentType) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.File(string virtualPath, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.VirtualFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Forbid() -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Forbid(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.ForbidResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.LocalRedirect(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.LocalRedirectPermanent(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.LocalRedirectPermanentPreserveMethod(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.LocalRedirectPreserveMethod(string localUrl) -> Microsoft.AspNetCore.Mvc.LocalRedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.NotFound() -> Microsoft.AspNetCore.Mvc.NotFoundResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.NotFound(object value) -> Microsoft.AspNetCore.Mvc.NotFoundObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.OnPageHandlerExecuting(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.OnPageHandlerExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate next) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.OnPageHandlerSelectionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Page() -> Microsoft.AspNetCore.Mvc.RazorPages.PageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Partial(string viewName) -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Partial(string viewName, object model) -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.PhysicalFile(string physicalPath, string contentType) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.PhysicalFile(string physicalPath, string contentType, string fileDownloadName) -> Microsoft.AspNetCore.Mvc.PhysicalFileResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectPermanent(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectPermanentPreserveMethod(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectPreserveMethod(string url) -> Microsoft.AspNetCore.Mvc.RedirectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToAction(string actionName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToAction(string actionName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToAction(string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToAction(string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToAction(string actionName, string controllerName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPermanent(string actionName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPermanent(string actionName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPermanent(string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPermanent(string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPermanent(string actionName, string controllerName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPermanent(string actionName, string controllerName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPermanentPreserveMethod(string actionName = null, string controllerName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToActionPreserveMethod(string actionName = null, string controllerName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToActionResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage() -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage(string pageName) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage(string pageName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage(string pageName, string pageHandler) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage(string pageName, string pageHandler, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPage(string pageName, string pageHandler, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanent(string pageName) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanent(string pageName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanent(string pageName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanent(string pageName, string pageHandler) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanent(string pageName, string pageHandler, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanent(string pageName, string pageHandler, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePermanentPreserveMethod(string pageName = null, string pageHandler = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToPagePreserveMethod(string pageName = null, string pageHandler = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToPageResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoute(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoute(string routeName) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoute(string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoute(string routeName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoute(string routeName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoutePermanent(object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoutePermanent(string routeName) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoutePermanent(string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoutePermanent(string routeName, object routeValues, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoutePermanent(string routeName, string fragment) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoutePermanentPreserveMethod(string routeName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.RedirectToRoutePreserveMethod(string routeName = null, object routeValues = null, string fragment = null) -> Microsoft.AspNetCore.Mvc.RedirectToRouteResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.SignIn(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) -> Microsoft.AspNetCore.Mvc.SignInResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.SignOut(params string[] authenticationSchemes) -> Microsoft.AspNetCore.Mvc.SignOutResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.StatusCode(int statusCode) -> Microsoft.AspNetCore.Mvc.StatusCodeResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.StatusCode(int statusCode, object value) -> Microsoft.AspNetCore.Mvc.ObjectResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryValidateModel(object model) -> bool +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.TryValidateModel(object model, string name) -> bool +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.Unauthorized() -> Microsoft.AspNetCore.Mvc.UnauthorizedResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.ViewComponent(System.Type componentType) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.ViewComponent(System.Type componentType, object arguments) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.ViewComponent(string componentName) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RazorPages.PageModel.ViewComponent(string componentName, object arguments) -> Microsoft.AspNetCore.Mvc.ViewComponentResult diff --git a/src/Mvc/Mvc.TagHelpers/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.TagHelpers/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.TagHelpers/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.TagHelpers/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.TagHelpers/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..a8b3400bdf --- /dev/null +++ b/src/Mvc/Mvc.TagHelpers/src/PublicAPI.Unshipped.txt @@ -0,0 +1,373 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary +Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary.All = 2 -> Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary +Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary.ModelOnly = 1 -> Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary +Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary.None = 0 -> Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary +Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormatter +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormatter.DistributedCacheTagHelperFormatter() -> void +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext.DistributedCacheTagHelperFormattingContext() -> void +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperService +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperStorage +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService +Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.Priority.get -> Microsoft.Extensions.Caching.Memory.CacheItemPriority? +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.Priority.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.Enabled.get -> bool +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.Enabled.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ExpiresAfter.get -> System.TimeSpan? +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ExpiresAfter.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ExpiresOn.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ExpiresOn.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ExpiresSliding.get -> System.TimeSpan? +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ExpiresSliding.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByCulture.get -> bool +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByCulture.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByUser.get -> bool +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByUser.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions.CacheTagHelperOptions() -> void +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions.SizeLimit.get -> long +Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions.SizeLimit.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ComponentTagHelper() -> void +Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.RenderMode.get -> Microsoft.AspNetCore.Mvc.Rendering.RenderMode +Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.RenderMode.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Antiforgery.get -> bool? +Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Antiforgery.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder +Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder.RequestPathBase.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.AppendVersion.get -> bool +Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.AppendVersion.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.AppendVersion.get -> bool? +Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.AppendVersion.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.SuppressFallbackIntegrity.get -> bool +Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.SuppressFallbackIntegrity.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.Optional.get -> bool +Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.Optional.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.RenderAtEndOfFormTagHelper() -> void +Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.AppendVersion.get -> bool? +Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.AppendVersion.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SuppressFallbackIntegrity.get -> bool +Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SuppressFallbackIntegrity.set -> void +Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions +Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper +Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.ValidationSummary.get -> Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary +Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.ValidationSummary.set -> void +Microsoft.Extensions.DependencyInjection.TagHelperServicesExtensions +override Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey.GetHashCode() -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.Order.get -> int +override Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.Order.get -> int +static readonly Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.DefaultExpiration -> System.TimeSpan +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Action.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Action.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.AnchorTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Area.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Area.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Controller.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Controller.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Fragment.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Fragment.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Host.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Host.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Page.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Page.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.PageHandler.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.PageHandler.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Protocol.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Protocol.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Route.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Route.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.RouteValues.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey.CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper tagHelper, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey.CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper tagHelper) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey.Equals(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey other) -> bool +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey.GenerateHashedKey() -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey.GenerateKey() -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormatter.DeserializeAsync(byte[] value) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormatter.SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext.Html.get -> Microsoft.AspNetCore.Html.HtmlString +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext.Html.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperService.DistributedCacheTagHelperService(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage storage, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter formatter, System.Text.Encodings.Web.HtmlEncoder HtmlEncoder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperService.ProcessContentAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey key, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperStorage.DistributedCacheTagHelperStorage(Microsoft.Extensions.Caching.Distributed.IDistributedCache distributedCache) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperStorage.GetAsync(string key) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperStorage.SetAsync(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter.DeserializeAsync(byte[] value) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter.SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService.ProcessContentAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey key, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage.GetAsync(string key) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage.SetAsync(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.CacheTagHelper(Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory factory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.MemoryCache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.CacheTagHelperBase(System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.HtmlEncoder.get -> System.Text.Encodings.Web.HtmlEncoder +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryBy.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryBy.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByCookie.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByCookie.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByHeader.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByHeader.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByQuery.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByQuery.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByRoute.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.VaryByRoute.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory.Cache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory.CacheTagHelperMemoryCacheFactory(Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ComponentType.get -> System.Type +~Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ComponentType.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.Parameters.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.Parameters.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.DistributedCacheTagHelper(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService distributedCacheService, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.MemoryCache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.Name.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.Name.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.EnvironmentTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Exclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Exclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.HostingEnvironment.get -> Microsoft.AspNetCore.Hosting.IWebHostEnvironment +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Include.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Include.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Names.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Names.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Action.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Action.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Area.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Area.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Controller.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Controller.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.FormActionTagHelper(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Fragment.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Fragment.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Page.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Page.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.PageHandler.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.PageHandler.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Route.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Route.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.RouteValues.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.UrlHelperFactory.get -> Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Action.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Action.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Area.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Area.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Controller.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Controller.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.FormTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Fragment.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Fragment.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Method.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Method.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Page.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Page.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.PageHandler.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.PageHandler.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Route.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Route.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.RouteValues.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.RouteValues.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder.Cache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder.FileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder.GlobbingUrlBuilder(Microsoft.Extensions.FileProviders.IFileProvider fileProvider, Microsoft.Extensions.Caching.Memory.IMemoryCache cache, Microsoft.AspNetCore.Http.PathString requestPathBase) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.Cache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.HostingEnvironment.get -> Microsoft.AspNetCore.Hosting.IWebHostEnvironment +~Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.ImageTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.ImageTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.Src.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.Src.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.For.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.For.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Format.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Format.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.GetInputType(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, out string inputTypeHint) -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.InputTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.InputTypeName.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.InputTypeName.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Name.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Name.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Value.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Value.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.For.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.For.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.LabelTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.Cache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHref.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHref.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHrefExclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHrefExclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHrefInclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHrefInclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestClass.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestClass.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestProperty.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestProperty.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestValue.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestValue.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.GlobbingUrlBuilder.get -> Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.GlobbingUrlBuilder.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.HostingEnvironment.get -> Microsoft.AspNetCore.Hosting.IWebHostEnvironment +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.Href.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.Href.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.HrefExclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.HrefExclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.HrefInclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.HrefInclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.JavaScriptEncoder.get -> System.Text.Encodings.Web.JavaScriptEncoder +~Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.LinkTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.JavaScriptEncoder javaScriptEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.OptionTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.Value.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.Value.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.FallbackName.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.FallbackName.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.For.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.For.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.Model.get -> object +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.Model.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.Name.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.Name.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.PartialTagHelper(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope viewBufferScope) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.Cache.get -> Microsoft.Extensions.Caching.Memory.IMemoryCache +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrc.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrc.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrcExclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrcExclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrcInclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrcInclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackTestExpression.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackTestExpression.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.GlobbingUrlBuilder.get -> Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.GlobbingUrlBuilder.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.HostingEnvironment.get -> Microsoft.AspNetCore.Hosting.IWebHostEnvironment +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.JavaScriptEncoder.get -> System.Text.Encodings.Web.JavaScriptEncoder +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.ScriptTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.JavaScriptEncoder javaScriptEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.Src.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.Src.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SrcExclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SrcExclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SrcInclude.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SrcInclude.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.For.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.For.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Items.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Items.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Name.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Name.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.SelectTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.For.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.For.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.Name.get -> string +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.Name.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.TextAreaTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.For.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.For.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.ValidationMessageTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.Generator.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.ValidationSummaryTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) -> void +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.ViewContext.set -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~override Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~static Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions.AddClass(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, string classValue, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~static Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions.CopyHtmlAttribute(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, string attributeName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~static Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions.MergeAttributes(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder) -> void +~static Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions.RemoveClass(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, string classValue, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~static Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions.RemoveRange(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, System.Collections.Generic.IEnumerable attributes) -> void +~static Microsoft.Extensions.DependencyInjection.TagHelperServicesExtensions.AddCacheTagHelper(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.TagHelperServicesExtensions.AddCacheTagHelperLimits(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.TagHelperServicesExtensions.AddCacheTagHelperLimits(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static readonly Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.CacheKeyPrefix -> string +~static readonly Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.CacheKeyPrefix -> string +~virtual Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder.BuildUrlList(string staticUrl, string includePattern, string excludePattern) -> System.Collections.Generic.IReadOnlyList diff --git a/src/Mvc/Mvc.Testing/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.Testing/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.Testing/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.Testing/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Testing/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..25fc98d166 --- /dev/null +++ b/src/Mvc/Mvc.Testing/src/PublicAPI.Unshipped.txt @@ -0,0 +1,48 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler +Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.CookieContainerHandler() -> void +Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler +Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.MaxRedirects.get -> int +Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.RedirectHandler() -> void +Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.RedirectHandler(int maxRedirects) -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.Dispose() -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.WebApplicationFactory() -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.~WebApplicationFactory() -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.AllowAutoRedirect.get -> bool +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.AllowAutoRedirect.set -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.HandleCookies.get -> bool +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.HandleCookies.set -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.MaxAutomaticRedirections.get -> int +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.MaxAutomaticRedirections.set -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.WebApplicationFactoryClientOptions() -> void +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryContentRootAttribute +Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryContentRootAttribute.Priority.get -> int +virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.Dispose(bool disposing) -> void +~Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.Container.get -> System.Net.CookieContainer +~Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.CookieContainerHandler(System.Net.CookieContainer cookieContainer) -> void +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.ClientOptions.get -> Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateClient() -> System.Net.Http.HttpClient +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateClient(Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions options) -> System.Net.Http.HttpClient +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateDefaultClient(System.Uri baseAddress, params System.Net.Http.DelegatingHandler[] handlers) -> System.Net.Http.HttpClient +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateDefaultClient(params System.Net.Http.DelegatingHandler[] handlers) -> System.Net.Http.HttpClient +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.Factories.get -> System.Collections.Generic.IReadOnlyList> +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.Server.get -> Microsoft.AspNetCore.TestHost.TestServer +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.WithWebHostBuilder(System.Action configuration) -> Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.BaseAddress.get -> System.Uri +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions.BaseAddress.set -> void +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryContentRootAttribute.ContentRootPath.get -> string +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryContentRootAttribute.ContentRootTest.get -> string +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryContentRootAttribute.Key.get -> string +~Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryContentRootAttribute.WebApplicationFactoryContentRootAttribute(string key, string contentRootPath, string contentRootTest, string priority) -> void +~override Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.ConfigureClient(System.Net.Http.HttpClient client) -> void +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.ConfigureWebHost(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) -> void +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateHost(Microsoft.Extensions.Hosting.IHostBuilder builder) -> Microsoft.Extensions.Hosting.IHost +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateHostBuilder() -> Microsoft.Extensions.Hosting.IHostBuilder +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) -> Microsoft.AspNetCore.TestHost.TestServer +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.CreateWebHostBuilder() -> Microsoft.AspNetCore.Hosting.IWebHostBuilder +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.GetTestAssemblies() -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory.Services.get -> System.IServiceProvider diff --git a/src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..4b6567f9ce --- /dev/null +++ b/src/Mvc/Mvc.ViewFeatures/src/PublicAPI.Unshipped.txt @@ -0,0 +1,1160 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute +Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute.AutoValidateAntiforgeryTokenAttribute() -> void +Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.Controller +Microsoft.AspNetCore.Mvc.Controller.Controller() -> void +Microsoft.AspNetCore.Mvc.Controller.Dispose() -> void +Microsoft.AspNetCore.Mvc.Controller.ViewBag.get -> dynamic +Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions +Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions.CookieTempDataProviderOptions() -> void +Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData +Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData +Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewEventData +Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData +Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData +Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData +Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData.IsMainPage.get -> bool +Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData +Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData.IsMainPage.get -> bool +Microsoft.AspNetCore.Mvc.IViewComponentHelper +Microsoft.AspNetCore.Mvc.IViewComponentResult +Microsoft.AspNetCore.Mvc.IgnoreAntiforgeryTokenAttribute +Microsoft.AspNetCore.Mvc.IgnoreAntiforgeryTokenAttribute.IgnoreAntiforgeryTokenAttribute() -> void +Microsoft.AspNetCore.Mvc.IgnoreAntiforgeryTokenAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.IgnoreAntiforgeryTokenAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions +Microsoft.AspNetCore.Mvc.MvcViewOptions +Microsoft.AspNetCore.Mvc.MvcViewOptions.MvcViewOptions() -> void +Microsoft.AspNetCore.Mvc.PageRemoteAttribute +Microsoft.AspNetCore.Mvc.PageRemoteAttribute.PageRemoteAttribute() -> void +Microsoft.AspNetCore.Mvc.PartialViewResult +Microsoft.AspNetCore.Mvc.PartialViewResult.PartialViewResult() -> void +Microsoft.AspNetCore.Mvc.PartialViewResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.PartialViewResult.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.RemoteAttribute +Microsoft.AspNetCore.Mvc.RemoteAttribute.RemoteAttribute() -> void +Microsoft.AspNetCore.Mvc.RemoteAttributeBase +Microsoft.AspNetCore.Mvc.RemoteAttributeBase.RemoteAttributeBase() -> void +Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode +Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode.EndOfForm = 2 -> Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode +Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode.Inline = 1 -> Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode +Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode.None = 0 -> Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode +Microsoft.AspNetCore.Mvc.Rendering.FormMethod +Microsoft.AspNetCore.Mvc.Rendering.FormMethod.Get = 0 -> Microsoft.AspNetCore.Mvc.Rendering.FormMethod +Microsoft.AspNetCore.Mvc.Rendering.FormMethod.Post = 1 -> Microsoft.AspNetCore.Mvc.Rendering.FormMethod +Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode +Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode.CurrentCulture = 1 -> Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode +Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode.Rfc3339 = 0 -> Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperComponentExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayNameExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperNameExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions +Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValueExtensions +Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper +Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.EndForm() -> void +Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Html5DateRenderingMode.get -> Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode +Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Html5DateRenderingMode.set -> void +Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ViewBag.get -> dynamic +Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper +Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper +Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList +Microsoft.AspNetCore.Mvc.Rendering.MvcForm +Microsoft.AspNetCore.Mvc.Rendering.MvcForm.Dispose() -> void +Microsoft.AspNetCore.Mvc.Rendering.MvcForm.EndForm() -> void +Microsoft.AspNetCore.Mvc.Rendering.RenderMode +Microsoft.AspNetCore.Mvc.Rendering.RenderMode.Server = 2 -> Microsoft.AspNetCore.Mvc.Rendering.RenderMode +Microsoft.AspNetCore.Mvc.Rendering.RenderMode.ServerPrerendered = 3 -> Microsoft.AspNetCore.Mvc.Rendering.RenderMode +Microsoft.AspNetCore.Mvc.Rendering.RenderMode.Static = 1 -> Microsoft.AspNetCore.Mvc.Rendering.RenderMode +Microsoft.AspNetCore.Mvc.Rendering.SelectList +Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup +Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup.Disabled.get -> bool +Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup.Disabled.set -> void +Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup.SelectListGroup() -> void +Microsoft.AspNetCore.Mvc.Rendering.SelectListItem +Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Disabled.get -> bool +Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Disabled.set -> void +Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.SelectListItem() -> void +Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Selected.get -> bool +Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Selected.set -> void +Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.HasInnerHtml.get -> bool +Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.TagRenderMode.get -> Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode +Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.TagRenderMode.set -> void +Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode +Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode.EndTag = 2 -> Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode +Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode.Normal = 0 -> Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode +Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode.SelfClosing = 3 -> Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode +Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode.StartTag = 1 -> Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode +Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions +Microsoft.AspNetCore.Mvc.Rendering.ViewContext +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.CheckBoxHiddenInputRenderMode.get -> Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.CheckBoxHiddenInputRenderMode.set -> void +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ClientValidationEnabled.get -> bool +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ClientValidationEnabled.set -> void +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.Html5DateRenderingMode.get -> Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.Html5DateRenderingMode.set -> void +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ViewBag.get -> dynamic +Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ViewContext() -> void +Microsoft.AspNetCore.Mvc.SkipStatusCodePagesAttribute +Microsoft.AspNetCore.Mvc.SkipStatusCodePagesAttribute.SkipStatusCodePagesAttribute() -> void +Microsoft.AspNetCore.Mvc.TempDataAttribute +Microsoft.AspNetCore.Mvc.TempDataAttribute.TempDataAttribute() -> void +Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute +Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute.ValidateAntiForgeryTokenAttribute() -> void +Microsoft.AspNetCore.Mvc.ViewComponent +Microsoft.AspNetCore.Mvc.ViewComponent.ViewBag.get -> dynamic +Microsoft.AspNetCore.Mvc.ViewComponent.ViewComponent() -> void +Microsoft.AspNetCore.Mvc.ViewComponentAttribute +Microsoft.AspNetCore.Mvc.ViewComponentAttribute.ViewComponentAttribute() -> void +Microsoft.AspNetCore.Mvc.ViewComponentResult +Microsoft.AspNetCore.Mvc.ViewComponentResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.ViewComponentResult.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.ViewComponentResult.ViewComponentResult() -> void +Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult +Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorCollectionProvider +Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider +Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentFactory +Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper +Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentSelector +Microsoft.AspNetCore.Mvc.ViewComponents.HtmlContentViewComponentResult +Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator +Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider +Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider +Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory +Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker +Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvokerFactory +Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentSelector +Microsoft.AspNetCore.Mvc.ViewComponents.ServiceBasedViewComponentActivator +Microsoft.AspNetCore.Mvc.ViewComponents.ServiceBasedViewComponentActivator.ServiceBasedViewComponentActivator() -> void +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.ViewComponentContext() -> void +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContextAttribute +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContextAttribute.ViewComponentContextAttribute() -> void +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentConventions +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.ViewComponentDescriptor() -> void +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection.Version.get -> int +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature.ViewComponentFeature() -> void +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeatureProvider +Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeatureProvider.ViewComponentFeatureProvider() -> void +Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult +Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ViewViewComponentResult() -> void +Microsoft.AspNetCore.Mvc.ViewDataAttribute +Microsoft.AspNetCore.Mvc.ViewDataAttribute.ViewDataAttribute() -> void +Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine +Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine +Microsoft.AspNetCore.Mvc.ViewEngines.IView +Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine +Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.Success.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.AntiforgeryExtensions +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.AttributeDictionary() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Clear() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Count.get -> int +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator.Reset() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.GetEnumerator() -> Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator +Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.IsReadOnly.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope +Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue +Microsoft.AspNetCore.Mvc.ViewFeatures.CookieTempDataProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator +Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.AllowRenderingMaxLengthAttribute.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGeneratorExtensions +Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultValidationHtmlAttributeProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.CanRenderAtEndOfForm.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.CanRenderAtEndOfForm.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.FormContext() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.HasAntiforgeryToken.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.HasAntiforgeryToken.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.HasEndOfFormContent.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.HasFormData.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.EndForm() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Html5DateRenderingMode.get -> Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Html5DateRenderingMode.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ViewBag.get -> dynamic +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.CheckBoxHiddenInputRenderMode.get -> Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.CheckBoxHiddenInputRenderMode.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.ClientValidationEnabled.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.ClientValidationEnabled.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.Html5DateRenderingMode.get -> Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.Html5DateRenderingMode.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.HtmlHelperOptions() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator +Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary.Keep() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary.Load() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary.Save() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory +Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware +Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer +Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer.TempDataSerializer() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.InputType +Microsoft.AspNetCore.Mvc.ViewFeatures.InputType.CheckBox = 0 -> Microsoft.AspNetCore.Mvc.ViewFeatures.InputType +Microsoft.AspNetCore.Mvc.ViewFeatures.InputType.Hidden = 1 -> Microsoft.AspNetCore.Mvc.ViewFeatures.InputType +Microsoft.AspNetCore.Mvc.ViewFeatures.InputType.Password = 2 -> Microsoft.AspNetCore.Mvc.ViewFeatures.InputType +Microsoft.AspNetCore.Mvc.ViewFeatures.InputType.Radio = 3 -> Microsoft.AspNetCore.Mvc.ViewFeatures.InputType +Microsoft.AspNetCore.Mvc.ViewFeatures.InputType.Text = 4 -> Microsoft.AspNetCore.Mvc.ViewFeatures.InputType +Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorerExtensions +Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.ModelMetadataProviderExtensions +Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor +Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute +Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute.IsReusable.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute.Order.get -> int +Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute.Order.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute.SaveTempDataAttribute() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.SessionStateTempDataProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.StringHtmlContent +Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary +Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Clear() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Count.get -> int +Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Keep() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Load() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Save() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionaryFactory +Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo +Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.TemplateDepth.get -> int +Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.TemplateInfo() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueDelegate +Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider +Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider.ValidationHtmlAttributeProvider() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContextAttribute +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContextAttribute.ViewContextAttribute() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Clear() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Count.get -> int +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.IsReadOnly.get -> bool +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Model.get -> TModel +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Model.set -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryAttribute +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryAttribute.ViewDataDictionaryAttribute() -> void +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryControllerPropertyActivator +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataEvaluator +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor +Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor +Microsoft.AspNetCore.Mvc.ViewResult +Microsoft.AspNetCore.Mvc.ViewResult.StatusCode.get -> int? +Microsoft.AspNetCore.Mvc.ViewResult.StatusCode.set -> void +Microsoft.AspNetCore.Mvc.ViewResult.ViewResult() -> void +Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions +Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions +virtual Microsoft.AspNetCore.Mvc.Controller.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.Mvc.Rendering.MvcForm.GenerateEndForm() -> void +~Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.Controller.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.Controller.TempData.set -> void +~Microsoft.AspNetCore.Mvc.Controller.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.Controller.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions.Cookie.get -> Microsoft.AspNetCore.Http.CookieBuilder +~Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions.Cookie.set -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData.AfterViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.IViewComponentResult viewComponentResult, object viewComponent) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData.ViewComponent.get -> object +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData.ViewComponentContext.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData.ViewComponentResult.get -> Microsoft.AspNetCore.Mvc.IViewComponentResult +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewEventData.AfterViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewEventData.View.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IView +~Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewEventData.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData.BeforeViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, object viewComponent) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData.ViewComponent.get -> object +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData.ViewComponentContext.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewEventData.BeforeViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewEventData.View.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IView +~Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewEventData.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData.View.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IView +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData.ViewComponentAfterViewExecuteEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData.ViewComponentContext.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData.ActionDescriptor.get -> Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData.View.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IView +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData.ViewComponentBeforeViewExecuteEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData.ViewComponentContext.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData.Result.get -> Microsoft.AspNetCore.Mvc.ActionResult +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData.View.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IView +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData.ViewFoundEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, bool isMainPage, Microsoft.AspNetCore.Mvc.ActionResult result, string viewName, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) -> void +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData.ViewName.get -> string +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData.ActionContext.get -> Microsoft.AspNetCore.Mvc.ActionContext +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData.Result.get -> Microsoft.AspNetCore.Mvc.ActionResult +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData.SearchedLocations.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData.ViewName.get -> string +~Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData.ViewNotFoundEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, bool isMainPage, Microsoft.AspNetCore.Mvc.ActionResult result, string viewName, System.Collections.Generic.IEnumerable searchedLocations) -> void +~Microsoft.AspNetCore.Mvc.IViewComponentHelper.InvokeAsync(System.Type componentType, object arguments) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.IViewComponentHelper.InvokeAsync(string name, object arguments) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.IViewComponentResult.Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> void +~Microsoft.AspNetCore.Mvc.IViewComponentResult.ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.MvcViewOptions.ClientModelValidatorProviders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.MvcViewOptions.HtmlHelperOptions.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions +~Microsoft.AspNetCore.Mvc.MvcViewOptions.HtmlHelperOptions.set -> void +~Microsoft.AspNetCore.Mvc.MvcViewOptions.ViewEngines.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.PageRemoteAttribute.PageHandler.get -> string +~Microsoft.AspNetCore.Mvc.PageRemoteAttribute.PageHandler.set -> void +~Microsoft.AspNetCore.Mvc.PageRemoteAttribute.PageName.get -> string +~Microsoft.AspNetCore.Mvc.PageRemoteAttribute.PageName.set -> void +~Microsoft.AspNetCore.Mvc.PartialViewResult.ContentType.get -> string +~Microsoft.AspNetCore.Mvc.PartialViewResult.ContentType.set -> void +~Microsoft.AspNetCore.Mvc.PartialViewResult.Model.get -> object +~Microsoft.AspNetCore.Mvc.PartialViewResult.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.PartialViewResult.TempData.set -> void +~Microsoft.AspNetCore.Mvc.PartialViewResult.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.PartialViewResult.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.PartialViewResult.ViewEngine.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine +~Microsoft.AspNetCore.Mvc.PartialViewResult.ViewEngine.set -> void +~Microsoft.AspNetCore.Mvc.PartialViewResult.ViewName.get -> string +~Microsoft.AspNetCore.Mvc.PartialViewResult.ViewName.set -> void +~Microsoft.AspNetCore.Mvc.RemoteAttribute.RemoteAttribute(string action, string controller) -> void +~Microsoft.AspNetCore.Mvc.RemoteAttribute.RemoteAttribute(string action, string controller, string areaName) -> void +~Microsoft.AspNetCore.Mvc.RemoteAttribute.RemoteAttribute(string routeName) -> void +~Microsoft.AspNetCore.Mvc.RemoteAttribute.RouteName.get -> string +~Microsoft.AspNetCore.Mvc.RemoteAttribute.RouteName.set -> void +~Microsoft.AspNetCore.Mvc.RemoteAttributeBase.AdditionalFields.get -> string +~Microsoft.AspNetCore.Mvc.RemoteAttributeBase.AdditionalFields.set -> void +~Microsoft.AspNetCore.Mvc.RemoteAttributeBase.FormatAdditionalFieldsForClientValidation(string property) -> string +~Microsoft.AspNetCore.Mvc.RemoteAttributeBase.HttpMethod.get -> string +~Microsoft.AspNetCore.Mvc.RemoteAttributeBase.HttpMethod.set -> void +~Microsoft.AspNetCore.Mvc.RemoteAttributeBase.RouteData.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ActionLink(string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.AntiForgeryToken() -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.BeginForm(string actionName, string controllerName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.BeginRouteForm(string routeName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.CheckBox(string expression, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Display(string expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DisplayName(string expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DisplayText(string expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DropDownList(string expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Editor(string expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Encode(object value) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Encode(string value) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.FormatValue(object value, string format) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.GenerateIdFromName(string fullName) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.GetEnumSelectList(System.Type enumType) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.GetEnumSelectList() -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Hidden(string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Id(string expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.IdAttributeDotReplacement.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Label(string expression, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ListBox(string expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Name(string expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.PartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Password(string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.RadioButton(string expression, object value, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Raw(object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Raw(string value) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.RenderPartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.RouteLink(string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.TextArea(string expression, string value, int rows, int columns, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.TextBox(string expression, object value, string format, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.UrlEncoder.get -> System.Text.Encodings.Web.UrlEncoder +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ValidationMessage(string expression, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ValidationSummary(bool excludePropertyErrors, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Value(string expression, string format) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.CheckBoxFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DisplayFor(System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DisplayNameFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DisplayNameForInnerType(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DisplayTextFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.DropDownListFor(System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.EditorFor(System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Encode(object value) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Encode(string value) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.HiddenFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.IdFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.LabelFor(System.Linq.Expressions.Expression> expression, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ListBoxFor(System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.NameFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.PasswordFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.RadioButtonFor(System.Linq.Expressions.Expression> expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Raw(object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Raw(string value) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.TextAreaFor(System.Linq.Expressions.Expression> expression, int rows, int columns, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.TextBoxFor(System.Linq.Expressions.Expression> expression, string format, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ValidationMessageFor(System.Linq.Expressions.Expression> expression, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ValueFor(System.Linq.Expressions.Expression> expression, string format) -> string +~Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper.Serialize(object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.DataGroupField.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.DataTextField.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.DataValueField.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.Items.get -> System.Collections.IEnumerable +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.MultiSelectList(System.Collections.IEnumerable items) -> void +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.MultiSelectList(System.Collections.IEnumerable items, System.Collections.IEnumerable selectedValues) -> void +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField) -> void +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, System.Collections.IEnumerable selectedValues) -> void +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, System.Collections.IEnumerable selectedValues, string dataGroupField) -> void +~Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.SelectedValues.get -> System.Collections.IEnumerable +~Microsoft.AspNetCore.Mvc.Rendering.MvcForm.MvcForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectList.SelectList(System.Collections.IEnumerable items) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectList.SelectList(System.Collections.IEnumerable items, object selectedValue) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectList.SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectList.SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, object selectedValue) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectList.SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, object selectedValue, string dataGroupField) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectList.SelectedValue.get -> object +~Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup.Name.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup.Name.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Group.get -> Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Group.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.SelectListItem(string text, string value) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.SelectListItem(string text, string value, bool selected) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.SelectListItem(string text, string value, bool selected, bool disabled) -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Text.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Text.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Value.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.SelectListItem.Value.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.AddCssClass(string value) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.Attributes.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.GenerateId(string name, string invalidCharReplacement) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.InnerHtml.get -> Microsoft.AspNetCore.Html.IHtmlContentBuilder +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.MergeAttribute(string key, string value) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.MergeAttribute(string key, string value, bool replaceExisting) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.MergeAttributes(System.Collections.Generic.IDictionary attributes) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.MergeAttributes(System.Collections.Generic.IDictionary attributes, bool replaceExisting) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.RenderBody() -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.RenderEndTag() -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.RenderSelfClosingTag() -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.RenderStartTag() -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.TagBuilder(Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.TagBuilder(string tagName) -> void +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.TagName.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ExecutingFilePath.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ExecutingFilePath.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.GetFormContextForClientValidation() -> Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.TempData.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ValidationMessageElement.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ValidationMessageElement.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ValidationSummaryMessageElement.get -> string +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ValidationSummaryMessageElement.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.View.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IView +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.View.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ViewContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData, System.IO.TextWriter writer, Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions htmlHelperOptions) -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ViewContext(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.IO.TextWriter writer) -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.Writer.get -> System.IO.TextWriter +~Microsoft.AspNetCore.Mvc.Rendering.ViewContext.Writer.set -> void +~Microsoft.AspNetCore.Mvc.SkipStatusCodePagesAttribute.OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) -> void +~Microsoft.AspNetCore.Mvc.SkipStatusCodePagesAttribute.OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context) -> void +~Microsoft.AspNetCore.Mvc.TempDataAttribute.Key.get -> string +~Microsoft.AspNetCore.Mvc.TempDataAttribute.Key.set -> void +~Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.ViewComponent.Content(string content) -> Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult +~Microsoft.AspNetCore.Mvc.ViewComponent.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Mvc.ViewComponent.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +~Microsoft.AspNetCore.Mvc.ViewComponent.Request.get -> Microsoft.AspNetCore.Http.HttpRequest +~Microsoft.AspNetCore.Mvc.ViewComponent.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData +~Microsoft.AspNetCore.Mvc.ViewComponent.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponent.Url.get -> Microsoft.AspNetCore.Mvc.IUrlHelper +~Microsoft.AspNetCore.Mvc.ViewComponent.Url.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponent.User.get -> System.Security.Principal.IPrincipal +~Microsoft.AspNetCore.Mvc.ViewComponent.UserClaimsPrincipal.get -> System.Security.Claims.ClaimsPrincipal +~Microsoft.AspNetCore.Mvc.ViewComponent.View() -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult +~Microsoft.AspNetCore.Mvc.ViewComponent.View(string viewName) -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult +~Microsoft.AspNetCore.Mvc.ViewComponent.View(TModel model) -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult +~Microsoft.AspNetCore.Mvc.ViewComponent.View(string viewName, TModel model) -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult +~Microsoft.AspNetCore.Mvc.ViewComponent.ViewComponentContext.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext +~Microsoft.AspNetCore.Mvc.ViewComponent.ViewComponentContext.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponent.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.ViewComponent.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponent.ViewEngine.get -> Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine +~Microsoft.AspNetCore.Mvc.ViewComponent.ViewEngine.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponentAttribute.Name.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponentAttribute.Name.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponentResult.Arguments.get -> object +~Microsoft.AspNetCore.Mvc.ViewComponentResult.Arguments.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ContentType.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ContentType.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponentResult.Model.get -> object +~Microsoft.AspNetCore.Mvc.ViewComponentResult.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponentResult.TempData.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ViewComponentName.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ViewComponentName.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ViewComponentType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ViewComponentType.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponentResult.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult.Content.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult.ContentViewComponentResult(string content) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult.Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult.ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorCollectionProvider.DefaultViewComponentDescriptorCollectionProvider(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider descriptorProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorCollectionProvider.ViewComponents.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider.DefaultViewComponentDescriptorProvider(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager partManager) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentFactory.CreateViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> object +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentFactory.DefaultViewComponentFactory(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator activator) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentFactory.ReleaseViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object component) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper.Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper.DefaultViewComponentHelper(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider descriptorProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentSelector selector, Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvokerFactory invokerFactory, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope viewBufferScope) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper.InvokeAsync(System.Type componentType, object arguments) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper.InvokeAsync(string name, object arguments) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentSelector.DefaultViewComponentSelector(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider descriptorProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentSelector.SelectComponent(string componentName) -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor +~Microsoft.AspNetCore.Mvc.ViewComponents.HtmlContentViewComponentResult.EncodedContent.get -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewComponents.HtmlContentViewComponentResult.Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.HtmlContentViewComponentResult.ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewComponents.HtmlContentViewComponentResult.HtmlContentViewComponentResult(Microsoft.AspNetCore.Html.IHtmlContent encodedContent) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator.Create(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> object +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator.Release(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider.ViewComponents.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider.GetViewComponents() -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory.CreateViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> object +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory.ReleaseViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object component) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker.InvokeAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvokerFactory.CreateInstance(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker +~Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentSelector.SelectComponent(string componentName) -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor +~Microsoft.AspNetCore.Mvc.ViewComponents.ServiceBasedViewComponentActivator.Create(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> object +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.Arguments.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.Arguments.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.HtmlEncoder.get -> System.Text.Encodings.Web.HtmlEncoder +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.HtmlEncoder.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.ViewComponentContext(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor viewComponentDescriptor, System.Collections.Generic.IDictionary arguments, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.IO.TextWriter writer) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.ViewComponentDescriptor.get -> Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.ViewComponentDescriptor.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.ViewContext.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext.Writer.get -> System.IO.TextWriter +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.DisplayName.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.DisplayName.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.FullName.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.FullName.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.Id.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.Id.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.MethodInfo.get -> System.Reflection.MethodInfo +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.MethodInfo.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.Parameters.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.Parameters.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.ShortName.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.ShortName.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.TypeInfo.get -> System.Reflection.TypeInfo +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor.TypeInfo.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection.Items.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection.ViewComponentDescriptorCollection(System.Collections.Generic.IEnumerable items, int version) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature.ViewComponents.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeatureProvider.PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature feature) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.TempData.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ViewEngine.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ViewEngine.set -> void +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ViewName.get -> string +~Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult.ViewName.set -> void +~Microsoft.AspNetCore.Mvc.ViewDataAttribute.Key.get -> string +~Microsoft.AspNetCore.Mvc.ViewDataAttribute.Key.set -> void +~Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine.CompositeViewEngine(Microsoft.Extensions.Options.IOptions optionsAccessor) -> void +~Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine.FindView(Microsoft.AspNetCore.Mvc.ActionContext context, string viewName, bool isMainPage) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine.GetView(string executingFilePath, string viewPath, bool isMainPage) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine.ViewEngines.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine.ViewEngines.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Mvc.ViewEngines.IView.Path.get -> string +~Microsoft.AspNetCore.Mvc.ViewEngines.IView.RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine.FindView(Microsoft.AspNetCore.Mvc.ActionContext context, string viewName, bool isMainPage) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine.GetView(string executingFilePath, string viewPath, bool isMainPage) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(System.Collections.Generic.IEnumerable originalLocations) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.SearchedLocations.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.View.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IView +~Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.ViewName.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Add(System.Collections.Generic.KeyValuePair item) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Add(string key, string value) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Contains(System.Collections.Generic.KeyValuePair item) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.ContainsKey(string key) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator.Enumerator(Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary attributes) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Keys.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Remove(System.Collections.Generic.KeyValuePair item) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Remove(string key) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.TryGetValue(string key, out string value) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Values.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.this[string key].get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.this[string key].set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope.CreateWriter(System.IO.TextWriter writer) -> System.IO.TextWriter +~Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope.GetPage(int pageSize) -> Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] +~Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope.ReturnSegment(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] segment) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue.Value.get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue.ViewBufferValue(Microsoft.AspNetCore.Html.IHtmlContent content) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue.ViewBufferValue(string value) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.CookieTempDataProvider.CookieTempDataProvider(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.CookieTempDataProvider.LoadTempData(Microsoft.AspNetCore.Http.HttpContext context) -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.CookieTempDataProvider.SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.DefaultHtmlGenerator(Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider validationAttributeProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.Encode(object value) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.Encode(string value) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.FormatValue(object value, string format) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateGroupsAndOptions(string optionLabel, System.Collections.Generic.IEnumerable selectList) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateRouteForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string routeName, object routeValues, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, bool allowMultiple, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.IdAttributeDotReplacement.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultValidationHtmlAttributeProvider.DefaultValidationHtmlAttributeProvider(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorCache clientValidatorCache) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.EndOfFormContent.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.FormData.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.RenderedField(string fieldName) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext.RenderedField(string fieldName, bool value) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.AntiForgeryToken() -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.BeginForm(string actionName, string controllerName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.BeginRouteForm(string routeName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.CheckBox(string expression, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Display(string expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DisplayName(string expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DisplayText(string expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DropDownList(string expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Editor(string expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Encode(object value) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Encode(string value) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.FormatValue(object value, string format) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateDropDown(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateIdFromName(string fullName) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateListBox(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GetEnumSelectList(System.Type enumType) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GetEnumSelectList() -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Hidden(string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.HtmlHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator htmlGenerator, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.UrlEncoder urlEncoder) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Id(string expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.IdAttributeDotReplacement.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Label(string expression, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ListBox(string expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.MetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Name(string expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.PartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Password(string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.RadioButton(string expression, object value, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Raw(object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Raw(string value) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.RenderPartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.RouteLink(string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.TextArea(string expression, string value, int rows, int columns, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.TextBox(string expression, object value, string format, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.UrlEncoder.get -> System.Text.Encodings.Web.UrlEncoder +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationMessage(string expression, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationSummary(bool excludePropertyErrors, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Value(string expression, string format) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.CheckBoxFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DisplayFor(System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DisplayNameFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DisplayNameForInnerType(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DisplayTextFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.DropDownListFor(System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.EditorFor(System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GetExpressionName(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GetModelExplorer(System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.HiddenFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.HtmlHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator htmlGenerator, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.UrlEncoder urlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider modelExpressionProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.IdFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.LabelFor(System.Linq.Expressions.Expression> expression, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ListBoxFor(System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.NameFor(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.PasswordFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.RadioButtonFor(System.Linq.Expressions.Expression> expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.TextAreaFor(System.Linq.Expressions.Expression> expression, int rows, int columns, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.TextBoxFor(System.Linq.Expressions.Expression> expression, string format, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationMessageFor(System.Linq.Expressions.Expression> expression, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValueFor(System.Linq.Expressions.Expression> expression, string format) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.IdAttributeDotReplacement.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.IdAttributeDotReplacement.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.ValidationMessageElement.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.ValidationMessageElement.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.ValidationSummaryMessageElement.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions.ValidationSummaryMessageElement.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider.AddFileVersionToPath(Microsoft.AspNetCore.Http.PathString requestPathBase, string path) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.Encode(object value) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.Encode(string value) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.FormatValue(object value, string format) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateActionLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateAntiforgery(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateCheckBox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string actionName, string controllerName, object routeValues, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateGroupsAndOptions(string optionLabel, System.Collections.Generic.IEnumerable selectList) -> Microsoft.AspNetCore.Html.IHtmlContent +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateHidden(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool useViewData, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateHiddenForCheckbox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateLabel(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GeneratePageForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string pageName, string pageHandler, object routeValues, string fragment, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GeneratePageLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string pageName, string pageHandler, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GeneratePassword(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateRadioButton(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateRouteForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string routeName, object routeValues, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateRouteLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, System.Collections.Generic.ICollection currentValues, bool allowMultiple, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, bool allowMultiple, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateTextArea(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, int rows, int columns, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateTextBox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, string format, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateValidationMessage(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string message, string tag, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GenerateValidationSummary(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, bool excludePropertyErrors, string message, string headerTag, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.GetCurrentValues(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool allowMultiple) -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator.IdAttributeDotReplacement.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider.CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary.Keep(string key) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary.Peek(string key) -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory.GetTempData(Microsoft.AspNetCore.Http.HttpContext context) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider.LoadTempData(Microsoft.AspNetCore.Http.HttpContext context) -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider.SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware.Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.Container.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForExpression(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func modelAccessor) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForExpression(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForExpression(System.Type modelType, System.Func modelAccessor) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForExpression(System.Type modelType, object model) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForModel(object model) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForProperty(string name) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForProperty(string name, System.Func modelAccessor) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.GetExplorerForProperty(string name, object model) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.Model.get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer container, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func modelAccessor) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer container, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.ModelType.get -> System.Type +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer.Properties.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression.Metadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression.Model.get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression.ModelExplorer.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression.ModelExpression(string name, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression.Name.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider.CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider.CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, string expression) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider.GetExpressionText(System.Linq.Expressions.Expression> expression) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider.ModelExpressionProvider(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor.PartialViewResultExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute.CreateInstance(System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata +~Microsoft.AspNetCore.Mvc.ViewFeatures.SessionStateTempDataProvider.SessionStateTempDataProvider(Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.StringHtmlContent.StringHtmlContent(string input) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.StringHtmlContent.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Add(string key, object value) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.ContainsKey(string key) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.ContainsValue(object value) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.GetEnumerator() -> System.Collections.Generic.IEnumerator> +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Keep(string key) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Keys.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Peek(string key) -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Remove(string key) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.TempDataDictionary(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider provider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.TryGetValue(string key, out object value) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.Values.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.this[string key].get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary.this[string key].set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionaryFactory.GetTempData(Microsoft.AspNetCore.Http.HttpContext context) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionaryFactory.TempDataDictionaryFactory(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider provider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.AddVisited(object value) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.FormattedModelValue.get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.FormattedModelValue.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.GetFullHtmlFieldName(string partialFieldName) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.HtmlFieldPrefix.get -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.HtmlFieldPrefix.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.TemplateInfo(Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo original) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo.Visited(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor.ViewComponentResultExecutor(Microsoft.Extensions.Options.IOptions mvcHelperOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataDictionaryFactory) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor.ViewComponentResultExecutor(Microsoft.Extensions.Options.IOptions mvcHelperOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataDictionaryFactory, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Add(System.Collections.Generic.KeyValuePair item) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Add(string key, object value) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Contains(System.Collections.Generic.KeyValuePair item) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ContainsKey(string key) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Eval(string expression) -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Eval(string expression, string format) -> string +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.GetViewDataInfo(string expression) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Keys.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Model.get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Model.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ModelExplorer.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ModelExplorer.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ModelMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ModelState.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Remove(System.Collections.Generic.KeyValuePair item) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Remove(string key) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.TemplateInfo.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.TryGetValue(string key, out object value) -> bool +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.Values.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Type declaredModelType) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, System.Type declaredModelType) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, System.Type declaredModelType) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, object model, System.Type declaredModelType) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.this[string index].get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.this[string index].set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, object model) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryControllerPropertyActivator.Activate(Microsoft.AspNetCore.Mvc.ControllerContext actionContext, object controller) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryControllerPropertyActivator.GetActivatorDelegate(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor) -> System.Action +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryControllerPropertyActivator.ViewDataDictionaryControllerPropertyActivator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo.Container.get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo.PropertyInfo.get -> System.Reflection.PropertyInfo +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo.Value.get -> object +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo.Value.set -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo.ViewDataInfo(object container, System.Reflection.PropertyInfo propertyInfo) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo.ViewDataInfo(object container, System.Reflection.PropertyInfo propertyInfo, System.Func valueAccessor) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo.ViewDataInfo(object container, object value) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.DiagnosticListener.get -> System.Diagnostics.DiagnosticListener +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string contentType, int? statusCode) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ModelMetadataProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.TempDataFactory.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ViewEngine.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ViewExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, System.Diagnostics.DiagnosticListener diagnosticListener) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ViewExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ViewOptions.get -> Microsoft.AspNetCore.Mvc.MvcViewOptions +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.WriterFactory.get -> Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ViewResult result) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ViewResultExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) -> void +~Microsoft.AspNetCore.Mvc.ViewResult.ContentType.get -> string +~Microsoft.AspNetCore.Mvc.ViewResult.ContentType.set -> void +~Microsoft.AspNetCore.Mvc.ViewResult.Model.get -> object +~Microsoft.AspNetCore.Mvc.ViewResult.TempData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary +~Microsoft.AspNetCore.Mvc.ViewResult.TempData.set -> void +~Microsoft.AspNetCore.Mvc.ViewResult.ViewData.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary +~Microsoft.AspNetCore.Mvc.ViewResult.ViewData.set -> void +~Microsoft.AspNetCore.Mvc.ViewResult.ViewEngine.get -> Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine +~Microsoft.AspNetCore.Mvc.ViewResult.ViewEngine.set -> void +~Microsoft.AspNetCore.Mvc.ViewResult.ViewName.get -> string +~Microsoft.AspNetCore.Mvc.ViewResult.ViewName.set -> void +~abstract Microsoft.AspNetCore.Mvc.RemoteAttributeBase.GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) -> string +~abstract Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer.Deserialize(byte[] unprotectedData) -> System.Collections.Generic.IDictionary +~abstract Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer.Serialize(System.Collections.Generic.IDictionary values) -> byte[] +~abstract Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider.AddValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, System.Collections.Generic.IDictionary attributes) -> void +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterViewComponent" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewEventData.EventName = "Microsoft.AspNetCore.Mvc.AfterView" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeViewComponent" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewEventData.EventName = "Microsoft.AspNetCore.Mvc.BeforeView" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData.EventName = "Microsoft.AspNetCore.Mvc.ViewComponentAfterViewExecute" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData.EventName = "Microsoft.AspNetCore.Mvc.ViewComponentBeforeViewExecute" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData.EventName = "Microsoft.AspNetCore.Mvc.ViewFound" -> string +~const Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData.EventName = "Microsoft.AspNetCore.Mvc.ViewNotFound" -> string +~override Microsoft.AspNetCore.Mvc.PageRemoteAttribute.GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) -> string +~override Microsoft.AspNetCore.Mvc.PartialViewResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.RemoteAttribute.GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) -> string +~override Microsoft.AspNetCore.Mvc.RemoteAttributeBase.FormatErrorMessage(string name) -> string +~override Microsoft.AspNetCore.Mvc.RemoteAttributeBase.IsValid(object value) -> bool +~override Microsoft.AspNetCore.Mvc.ViewComponentResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultValidationHtmlAttributeProvider.AddValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, System.Collections.Generic.IDictionary attributes) -> void +~override Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> void +~override Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions.AddModelError(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions.AddModelError(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, string errorMessage) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions.Remove(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression) -> bool +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions.RemoveAll(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression) -> void +~static Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions.TryAddModelException(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, System.Exception exception) -> void +~static Microsoft.AspNetCore.Mvc.RemoteAttributeBase.FormatPropertyForClientValidation(string property) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperComponentExtensions.RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Type componentType, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperComponentExtensions.RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperComponentExtensions.RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, string htmlFieldName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayNameExtensions.DisplayNameFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper> htmlHelper, System.Linq.Expressions.Expression> expression) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayNameExtensions.DisplayNameForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, string htmlFieldName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions.EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool? antiforgery) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object routeValues) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object routeValues) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object routeValues, bool? antiforgery) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, bool? antiforgery) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, object routeValues) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions.BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, bool isChecked) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.CheckBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.Hidden(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.Hidden(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.HiddenFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.Password(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.Password(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.PasswordFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.RadioButton(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.RadioButton(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, bool isChecked) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.RadioButton(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.RadioButtonFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string value) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextAreaFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextAreaFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, string format) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions.TextBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string format) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.Label(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.Label(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string labelText) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.LabelFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.LabelFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.LabelFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string labelText) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string labelText) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions.LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, object routeValues) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, string controllerName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, string controllerName, object routeValues) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, object routeValues) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName, object routeValues) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions.RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperNameExtensions.IdForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperNameExtensions.NameForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) -> void +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> void +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) -> void +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> void +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.RenderPartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.RenderPartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.RenderPartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList, string optionLabel) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string optionLabel) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownListFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownListFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.DropDownListFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, string optionLabel) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.ListBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.ListBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions.ListBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string message) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string message, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string message, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string message) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string message, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string message, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions.ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValueExtensions.Value(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValueExtensions.ValueFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValueExtensions.ValueForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValueExtensions.ValueForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string format) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.TagBuilder.CreateSanitizedId(string name, string invalidCharReplacement) -> string +~static Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions.InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper, System.Type componentType) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions.InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper, string name) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions.InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions.InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper, object arguments) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentConventions.GetComponentFullName(System.Reflection.TypeInfo componentType) -> string +~static Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentConventions.GetComponentName(System.Reflection.TypeInfo componentType) -> string +~static Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentConventions.IsComponent(System.Reflection.TypeInfo typeInfo) -> bool +~static Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.Found(string viewName, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~static Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.NotFound(string viewName, System.Collections.Generic.IEnumerable searchedLocations) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~static Microsoft.AspNetCore.Mvc.ViewFeatures.AntiforgeryExtensions.GetHtml(this Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.AspNetCore.Http.HttpContext httpContext) -> Microsoft.AspNetCore.Html.IHtmlContent +~static Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGeneratorExtensions.GenerateForm(this Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string actionName, string controllerName, string fragment, object routeValues, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~static Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGeneratorExtensions.GenerateRouteForm(this Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string routeName, object routeValues, string fragment, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~static Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.AnonymousObjectToHtmlAttributes(object htmlAttributes) -> System.Collections.Generic.IDictionary +~static Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GetFormMethodString(Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) -> string +~static Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ObjectToDictionary(object value) -> System.Collections.Generic.IDictionary +~static Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorerExtensions.GetSimpleDisplayText(this Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) -> string +~static Microsoft.AspNetCore.Mvc.ViewFeatures.ModelMetadataProviderExtensions.GetModelExplorerForType(this Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, System.Type modelType, object model) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer +~static Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueProvider.CreateInstance(System.Type targetType) -> Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueDelegate +~static Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.FormatValue(object value, string format) -> string +~static Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataEvaluator.Eval(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, string expression) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo +~static Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataEvaluator.Eval(object indexableObject, string expression) -> Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions.AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions.AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions.AddSessionStateTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions.AddViewComponentsAsServices(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions.AddViewOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions.AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions.AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions.AddViews(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions.AddViews(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions.ConfigureViews(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder +~static readonly Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentConventions.ViewComponentSuffix -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.CookieTempDataProvider.CookieName -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationInputCssClassName -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationInputValidCssClassName -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationMessageCssClassName -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationMessageValidCssClassName -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationSummaryCssClassName -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.ValidationSummaryValidCssClassName -> string +~static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.DefaultContentType -> string +~virtual Microsoft.AspNetCore.Mvc.Controller.Json(object data) -> Microsoft.AspNetCore.Mvc.JsonResult +~virtual Microsoft.AspNetCore.Mvc.Controller.Json(object data, object serializerSettings) -> Microsoft.AspNetCore.Mvc.JsonResult +~virtual Microsoft.AspNetCore.Mvc.Controller.OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Controller.OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Controller.OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.Controller.PartialView() -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.PartialView(object model) -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.PartialView(string viewName) -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.PartialView(string viewName, object model) -> Microsoft.AspNetCore.Mvc.PartialViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.View() -> Microsoft.AspNetCore.Mvc.ViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.View(object model) -> Microsoft.AspNetCore.Mvc.ViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.View(string viewName) -> Microsoft.AspNetCore.Mvc.ViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.View(string viewName, object model) -> Microsoft.AspNetCore.Mvc.ViewResult +~virtual Microsoft.AspNetCore.Mvc.Controller.ViewComponent(System.Type componentType) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.Controller.ViewComponent(System.Type componentType, object arguments) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.Controller.ViewComponent(string componentName) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.Controller.ViewComponent(string componentName, object arguments) -> Microsoft.AspNetCore.Mvc.ViewComponentResult +~virtual Microsoft.AspNetCore.Mvc.RemoteAttributeBase.AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) -> void +~virtual Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.GetEnumerator() -> System.Collections.Generic.IEnumerator +~virtual Microsoft.AspNetCore.Mvc.Rendering.ViewContext.FormContext.get -> Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext +~virtual Microsoft.AspNetCore.Mvc.Rendering.ViewContext.FormContext.set -> void +~virtual Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider.GetCandidateTypes() -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider.GetViewComponents() -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Mvc.ViewComponents.ServiceBasedViewComponentActivator.Release(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.AddMaxLengthAttribute(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.AddPlaceholderAttribute(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.AddValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateActionLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateAntiforgery(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateCheckBox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string actionName, string controllerName, object routeValues, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateFormCore(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string action, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateHidden(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool useViewData, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateHiddenForCheckbox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateInput(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.InputType inputType, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool useViewData, bool isChecked, bool setId, bool isExplicitValue, string format, System.Collections.Generic.IDictionary htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateLabel(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateLink(string linkText, string url, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GeneratePageForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string pageName, string pageHandler, object routeValues, string fragment, string method, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GeneratePageLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string pageName, string pageHandler, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GeneratePassword(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateRadioButton(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateRouteLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, System.Collections.Generic.ICollection currentValues, bool allowMultiple, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateTextArea(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, int rows, int columns, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateTextBox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, string format, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateValidationMessage(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string message, string tag, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateValidationSummary(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, bool excludePropertyErrors, string message, string headerTag, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.TagBuilder +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GetCurrentValues(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool allowMultiple) -> System.Collections.Generic.ICollection +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.CreateForm() -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateCheckBox(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateDisplay(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string htmlFieldName, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateDisplayName(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) -> string +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateDisplayText(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) -> string +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateEditor(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string htmlFieldName, string templateName, object additionalViewData) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateForm(string actionName, string controllerName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateHidden(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool useViewData, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateId(string expression) -> string +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateLabel(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string labelText, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateName(string expression) -> string +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GeneratePassword(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateRadioButton(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool? isChecked, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateRouteForm(string routeName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) -> Microsoft.AspNetCore.Mvc.Rendering.MvcForm +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateTextArea(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, int rows, int columns, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateTextBox(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, string format, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateValidationMessage(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string message, string tag, object htmlAttributes) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateValidationSummary(bool excludePropertyErrors, string message, object htmlAttributes, string tag) -> Microsoft.AspNetCore.Html.IHtmlContent +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateValue(string expression, object value, string format, bool useViewData) -> string +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GetEnumSelectList(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.RenderPartialCoreAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.IO.TextWriter writer) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer.CanSerializeType(System.Type type) -> bool +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.PartialViewResult viewResult) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PartialViewResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor.FindView(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.PartialViewResult viewResult) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.SessionStateTempDataProvider.LoadTempData(Microsoft.AspNetCore.Http.HttpContext context) -> System.Collections.Generic.IDictionary +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.SessionStateTempDataProvider.SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider.AddAndTrackValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, System.Collections.Generic.IDictionary attributes) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ViewComponentResult result) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.SetModel(object value) -> void +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData, string contentType, int? statusCode) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.FindView(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewResult viewResult) -> Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult diff --git a/src/Mvc/Mvc/src/PublicAPI.Shipped.txt b/src/Mvc/Mvc/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Mvc/Mvc/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Mvc/Mvc/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..210451dad3 --- /dev/null +++ b/src/Mvc/Mvc/src/PublicAPI.Unshipped.txt @@ -0,0 +1,10 @@ +#nullable enable +Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddControllers(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddControllers(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddControllersWithViews(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddControllersWithViews(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddMvc(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddMvc(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddRazorPages(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder +~static Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddRazorPages(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IMvcBuilder From 990e639c08e041e9d55f400888ac8de512323bb8 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Fri, 24 Jul 2020 23:51:13 +0430 Subject: [PATCH 57/75] [MusicStore] Move to GenericHost (#24284) --- src/MusicStore/samples/MusicStore/Program.cs | 98 +++++++++++--------- 1 file changed, 52 insertions(+), 46 deletions(-) diff --git a/src/MusicStore/samples/MusicStore/Program.cs b/src/MusicStore/samples/MusicStore/Program.cs index ca81340f1f..6a5993d459 100644 --- a/src/MusicStore/samples/MusicStore/Program.cs +++ b/src/MusicStore/samples/MusicStore/Program.cs @@ -1,72 +1,78 @@ using System; using System.IO; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Server.HttpSys; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace MusicStore { public static class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { var config = new ConfigurationBuilder() .AddCommandLine(args) .AddEnvironmentVariables(prefix: "ASPNETCORE_") .Build(); - var builder = new WebHostBuilder() - .UseConfiguration(config) - .UseIISIntegration() - .UseStartup("MusicStore") + var builder = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseConfiguration(config) + .UseIISIntegration() + .UseStartup("MusicStore"); + + var environment = webHostBuilder.GetSetting("environment") ?? + Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); + + if (string.Equals(webHostBuilder.GetSetting("server"), "Microsoft.AspNetCore.Server.HttpSys", System.StringComparison.Ordinal)) + { + if (string.Equals(environment, "NtlmAuthentication", System.StringComparison.Ordinal)) + { + // Set up NTLM authentication for WebListener like below. + // For IIS and IISExpress: Use inetmgr to setup NTLM authentication on the application vDir or + // modify the applicationHost.config to enable NTLM. + webHostBuilder.UseHttpSys(options => + { + options.Authentication.Schemes = AuthenticationSchemes.NTLM; + options.Authentication.AllowAnonymous = false; + }); + } + else + { + webHostBuilder.UseHttpSys(); + } + } + else + { + webHostBuilder.UseKestrel(); + } + + // In Proc + webHostBuilder.UseIIS(); + + webHostBuilder.ConfigureLogging(factory => + { + factory.AddConsole(); + + var logLevel = string.Equals(environment, "Development", StringComparison.Ordinal) ? LogLevel.Information : LogLevel.Warning; + factory.SetMinimumLevel(logLevel); + + // Turn off Info logging for EF commands + factory.AddFilter("Microsoft.EntityFrameworkCore.Database.Command", LogLevel.Warning); + }); + }) .UseDefaultServiceProvider((context, options) => { options.ValidateScopes = true; }); - var environment = builder.GetSetting("environment") ?? - Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); - - if (string.Equals(builder.GetSetting("server"), "Microsoft.AspNetCore.Server.HttpSys", System.StringComparison.Ordinal)) - { - if (string.Equals(environment, "NtlmAuthentication", System.StringComparison.Ordinal)) - { - // Set up NTLM authentication for WebListener like below. - // For IIS and IISExpress: Use inetmgr to setup NTLM authentication on the application vDir or - // modify the applicationHost.config to enable NTLM. - builder.UseHttpSys(options => - { - options.Authentication.Schemes = AuthenticationSchemes.NTLM; - options.Authentication.AllowAnonymous = false; - }); - } - else - { - builder.UseHttpSys(); - } - } - else - { - builder.UseKestrel(); - } - - // In Proc - builder.UseIIS(); - - builder.ConfigureLogging(factory => - { - factory.AddConsole(); - - var logLevel = string.Equals(environment, "Development", StringComparison.Ordinal) ? LogLevel.Information : LogLevel.Warning; - factory.SetMinimumLevel(logLevel); - - // Turn off Info logging for EF commands - factory.AddFilter("Microsoft.EntityFrameworkCore.Database.Command", LogLevel.Warning); - }); - var host = builder.Build(); - host.Run(); + return host.RunAsync(); } } } From 8b0f46c357149cb203f7ead13abe921389b34beb Mon Sep 17 00:00:00 2001 From: Youssef Victor <31348972+Youssef1313@users.noreply.github.com> Date: Fri, 24 Jul 2020 22:54:58 +0200 Subject: [PATCH 58/75] Use Compount Assignment to respect IDE0054 (#24202) * Use Compount Assignment to respect IDE0054 --- .../UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml.cs | 4 ++-- .../UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml.cs b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml.cs index 8b21750186..c052f1ec01 100644 --- a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml.cs +++ b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml.cs @@ -109,7 +109,7 @@ namespace Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal ModelState.AddModelError(string.Empty, ErrorMessage); } - returnUrl = returnUrl ?? Url.Content("~/"); + returnUrl ??= Url.Content("~/"); // Clear the existing external cookie to ensure a clean login process await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); @@ -121,7 +121,7 @@ namespace Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal public override async Task OnPostAsync(string returnUrl = null) { - returnUrl = returnUrl ?? Url.Content("~/"); + returnUrl ??= Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml.cs b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml.cs index 8e2a7e2faf..1276e61969 100644 --- a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml.cs +++ b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml.cs @@ -126,7 +126,7 @@ namespace Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal public override async Task OnPostAsync(string returnUrl = null) { - returnUrl = returnUrl ?? Url.Content("~/"); + returnUrl ??= Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { From b094ecddf0b87adb10725628fdce463a278a6c9e Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Fri, 24 Jul 2020 17:44:58 -0700 Subject: [PATCH 59/75] Create PublicAPI.Unshipped.txt (#24299) * Updated PublicAPI.Unshipped * Improve record type detection Support both forms of Clone methods to detect record types Co-authored-by: Pranav K --- .../ActionConstraintProviderContext.cs | 2 +- .../Mvc.Abstractions/src/PublicAPI.Unshipped.txt | 7 +++++++ .../Metadata/DefaultBindingMetadataProvider.cs | 3 ++- src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt | 15 +++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Mvc/Mvc.Abstractions/src/ActionConstraints/ActionConstraintProviderContext.cs b/src/Mvc/Mvc.Abstractions/src/ActionConstraints/ActionConstraintProviderContext.cs index d740257203..7d23cd50f5 100644 --- a/src/Mvc/Mvc.Abstractions/src/ActionConstraints/ActionConstraintProviderContext.cs +++ b/src/Mvc/Mvc.Abstractions/src/ActionConstraints/ActionConstraintProviderContext.cs @@ -59,4 +59,4 @@ namespace Microsoft.AspNetCore.Mvc.ActionConstraints /// public IList Results { get; } } -} \ No newline at end of file +} diff --git a/src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt index af5b4f50c8..af32a8728d 100644 --- a/src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt +++ b/src/Mvc/Mvc.Abstractions/src/PublicAPI.Unshipped.txt @@ -355,6 +355,7 @@ Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory.CreateValueProviderA Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider.ModelBindingMessageProvider() -> void Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ConstructorInfo.get -> System.Reflection.ConstructorInfo? Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ContainerType.get -> System.Type? Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.Equals(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity other) -> bool Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.MetadataKind.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind @@ -363,6 +364,7 @@ Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.Name.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ParameterInfo.get -> System.Reflection.ParameterInfo? Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.PropertyInfo.get -> System.Reflection.PropertyInfo? Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind +Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind.Constructor = 3 -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind.Parameter = 2 -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind.Property = 1 -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind.Type = 0 -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind @@ -733,6 +735,7 @@ static Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo.GetBindingInfo(System.C static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s2) -> bool static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource.operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource? s2) -> bool static Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource.Create(System.Collections.Generic.IEnumerable! bindingSources, string! displayName) -> Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource! +static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForConstructor(System.Reflection.ConstructorInfo! constructor, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForParameter(System.Reflection.ParameterInfo! parameter) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForParameter(System.Reflection.ParameterInfo! parameter, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity.ForProperty(System.Reflection.PropertyInfo! propertyInfo, System.Type! modelType, System.Type! containerType) -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity @@ -843,10 +846,14 @@ virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.CreateB virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext.Services.get -> System.IServiceProvider! virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.ModelType.get -> System.Type! +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.BoundConstructor.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata? +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.BoundConstructorInvoker.get -> System.Func? +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.BoundConstructorParameters.get -> System.Collections.Generic.IReadOnlyList? virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.ContainerMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.GetMetadataForProperties(System.Type! modelType) -> System.Collections.Generic.IEnumerable! virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.GetMetadataForType(System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.HasValidators.get -> bool? virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata.PropertyValidationFilter.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter? +virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForConstructor(System.Reflection.ConstructorInfo! constructor, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForParameter(System.Reflection.ParameterInfo! parameter, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider.GetMetadataForProperty(System.Reflection.PropertyInfo! propertyInfo, System.Type! modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata! diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/Metadata/DefaultBindingMetadataProvider.cs b/src/Mvc/Mvc.Core/src/ModelBinding/Metadata/DefaultBindingMetadataProvider.cs index eea47efcd6..e5b7c54df0 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/Metadata/DefaultBindingMetadataProvider.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/Metadata/DefaultBindingMetadataProvider.cs @@ -143,7 +143,8 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata static bool IsRecordType(Type type) { // Based on the state of the art as described in https://github.com/dotnet/roslyn/issues/45777 - var cloneMethod = type.GetMethod("<>Clone", BindingFlags.Public | BindingFlags.Instance); + var cloneMethod = type.GetMethod("$", BindingFlags.Public | BindingFlags.Instance) ?? + type.GetMethod("<>Clone", BindingFlags.Public | BindingFlags.Instance); return cloneMethod != null && cloneMethod.ReturnType == type; } } diff --git a/src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt b/src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt index 04d15cb58d..b122b73175 100644 --- a/src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt +++ b/src/Mvc/Mvc.Core/src/PublicAPI.Unshipped.txt @@ -457,6 +457,9 @@ Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinderProvid Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider.CollectionModelBinderProvider() -> void +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinder +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinderProvider +Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinderProvider.ComplexObjectModelBinderProvider() -> void Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider.ComplexTypeModelBinderProvider() -> void @@ -1455,6 +1458,8 @@ virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit ~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.ElementBinder.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder ~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.Logger.get -> Microsoft.Extensions.Logging.ILogger ~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinderProvider.GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) -> Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder ~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) -> System.Threading.Tasks.Task ~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.ComplexTypeModelBinder(System.Collections.Generic.IDictionary propertyBinders, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void ~Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.ComplexTypeModelBinder(System.Collections.Generic.IDictionary propertyBinders, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) -> void @@ -1527,6 +1532,8 @@ virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BinderType.set -> void ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BindingSource.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BoundConstructor.get -> System.Reflection.ConstructorInfo +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.BoundConstructor.set -> void ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.ModelBindingMessageProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.ModelBindingMessageProvider.set -> void ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata.PropertyFilterProvider.get -> Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider @@ -1543,6 +1550,10 @@ virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider.Type.get -> System.Type ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BindingMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BindingMetadata.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BoundConstructorInvoker.get -> System.Func +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BoundConstructorInvoker.set -> void +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BoundConstructorParameters.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata[] +~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.BoundConstructorParameters.set -> void ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.ContainerMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.ContainerMetadata.set -> void ~Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails.DefaultMetadataDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) -> void @@ -2017,6 +2028,9 @@ virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BinderModelName.get -> string ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BinderType.get -> System.Type ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BindingSource.get -> Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BoundConstructor.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BoundConstructorInvoker.get -> System.Func +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.BoundConstructorParameters.get -> System.Collections.Generic.IReadOnlyList ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ContainerMetadata.get -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.DataTypeName.get -> string ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.Description.get -> string @@ -2039,6 +2053,7 @@ virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.SimpleDisplayProperty.get -> string ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.TemplateHint.get -> string ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata.ValidatorMetadata.get -> System.Collections.Generic.IReadOnlyList +~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForConstructor(System.Reflection.ConstructorInfo constructorInfo, System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForParameter(System.Reflection.ParameterInfo parameter) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForParameter(System.Reflection.ParameterInfo parameter, System.Type modelType) -> Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ~override Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider.GetMetadataForProperties(System.Type modelType) -> System.Collections.Generic.IEnumerable From 64b5ea9393119321205c11320dc050ff0ea06dfd Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Sat, 25 Jul 2020 09:33:10 +0430 Subject: [PATCH 60/75] [HttpSys] Move to GenericHost (#24285) --- .../HttpSys/samples/HotAddSample/Startup.cs | 16 +++++++++---- .../HttpSys/test/FunctionalTests/Utilities.cs | 23 +++++++++++-------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/Servers/HttpSys/samples/HotAddSample/Startup.cs b/src/Servers/HttpSys/samples/HotAddSample/Startup.cs index 58975d6aa6..a0efd408f1 100644 --- a/src/Servers/HttpSys/samples/HotAddSample/Startup.cs +++ b/src/Servers/HttpSys/samples/HotAddSample/Startup.cs @@ -1,9 +1,11 @@ using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Server.HttpSys; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace HotAddSample @@ -96,15 +98,19 @@ namespace HotAddSample }); } - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseStartup() + .UseHttpSys(); + }) .ConfigureLogging(factory => factory.AddConsole()) - .UseStartup() - .UseHttpSys() .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Servers/HttpSys/test/FunctionalTests/Utilities.cs b/src/Servers/HttpSys/test/FunctionalTests/Utilities.cs index a347ce427f..4aa56ccabf 100644 --- a/src/Servers/HttpSys/test/FunctionalTests/Utilities.cs +++ b/src/Servers/HttpSys/test/FunctionalTests/Utilities.cs @@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Hosting.Server.Features; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Testing; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -66,7 +67,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys }, app); } - internal static IWebHost CreateDynamicHost(AuthenticationSchemes authType, bool allowAnonymous, out string root, RequestDelegate app) + internal static IHost CreateDynamicHost(AuthenticationSchemes authType, bool allowAnonymous, out string root, RequestDelegate app) { return CreateDynamicHost(string.Empty, out root, out var baseAddress, options => { @@ -75,22 +76,26 @@ namespace Microsoft.AspNetCore.Server.HttpSys }, app); } - internal static IWebHost CreateDynamicHost(out string baseAddress, Action configureOptions, RequestDelegate app) + internal static IHost CreateDynamicHost(out string baseAddress, Action configureOptions, RequestDelegate app) { return CreateDynamicHost(string.Empty, out var root, out baseAddress, configureOptions, app); } - internal static IWebHost CreateDynamicHost(string basePath, out string root, out string baseAddress, Action configureOptions, RequestDelegate app) + internal static IHost CreateDynamicHost(string basePath, out string root, out string baseAddress, Action configureOptions, RequestDelegate app) { var prefix = UrlPrefix.Create("http", "localhost", "0", basePath); - var builder = new WebHostBuilder() - .UseHttpSys(options => + var builder = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - options.UrlPrefixes.Add(prefix); - configureOptions(options); - }) - .Configure(appBuilder => appBuilder.Run(app)); + webHostBuilder + .UseHttpSys(options => + { + options.UrlPrefixes.Add(prefix); + configureOptions(options); + }) + .Configure(appBuilder => appBuilder.Run(app)); + }); var host = builder.Build(); From f26942805dba614e6c9e2d7aa7da8fe3edaff827 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Sat, 25 Jul 2020 07:34:05 -0700 Subject: [PATCH 61/75] Turn on nullability for Routing (#24238) * Turn on nullability for Routing We previously only had annotations enabled which resulted in incorrect nullability. This change enables nullability. Fixes https://github.com/dotnet/aspnetcore/issues/24042 --- .../Http.Abstractions/src/Routing/Endpoint.cs | 6 +- .../src/IRouteConstraint.cs | 2 +- src/Http/Routing/src/ArrayBuilder.cs | 1 + ...ointRoutingApplicationBuilderExtensions.cs | 2 +- .../src/CompositeEndpointDataSource.cs | 12 ++-- .../src/Constraints/BoolRouteConstraint.cs | 6 +- .../Constraints/CompositeRouteConstraint.cs | 6 +- .../Constraints/DateTimeRouteConstraint.cs | 6 +- .../src/Constraints/DecimalRouteConstraint.cs | 6 +- .../src/Constraints/DoubleRouteConstraint.cs | 6 +- .../Constraints/FileNameRouteConstraint.cs | 4 +- .../src/Constraints/FloatRouteConstraint.cs | 6 +- .../src/Constraints/GuidRouteConstraint.cs | 6 +- .../Constraints/HttpMethodRouteConstraint.cs | 4 +- .../src/Constraints/IntRouteConstraint.cs | 6 +- .../src/Constraints/LengthRouteConstraint.cs | 8 +-- .../src/Constraints/LongRouteConstraint.cs | 6 +- .../Constraints/MaxLengthRouteConstraint.cs | 8 +-- .../src/Constraints/MaxRouteConstraint.cs | 6 +- .../Constraints/MinLengthRouteConstraint.cs | 8 +-- .../src/Constraints/MinRouteConstraint.cs | 6 +- .../Constraints/NonFileNameRouteConstraint.cs | 4 +- .../src/Constraints/NullRouteConstraint.cs | 4 +- .../Constraints/OptionalRouteConstraint.cs | 6 +- .../src/Constraints/RangeRouteConstraint.cs | 6 +- .../src/Constraints/RegexRouteConstraint.cs | 6 +- .../Constraints/RequiredRouteConstraint.cs | 6 +- .../src/Constraints/StringRouteConstraint.cs | 8 +-- .../Routing/src/DataSourceDependentCache.cs | 2 + .../src/DecisionTree/DecisionCriterion.cs | 4 +- .../src/DecisionTree/DecisionTreeNode.cs | 4 +- .../src/DecisionTree/ItemDescriptor.cs | 4 +- src/Http/Routing/src/DefaultLinkGenerator.cs | 2 +- src/Http/Routing/src/DefaultLinkParser.cs | 6 +- .../src/DefaultParameterPolicyFactory.cs | 4 +- src/Http/Routing/src/EndpointMiddleware.cs | 1 + .../Routing/src/EndpointNameAddressScheme.cs | 2 +- .../Routing/src/EndpointRoutingMiddleware.cs | 3 +- .../Routing/src/InlineRouteParameterParser.cs | 2 +- ...kGeneratorEndpointNameAddressExtensions.cs | 28 ++++---- ...nkGeneratorRouteValuesAddressExtensions.cs | 38 +++++------ src/Http/Routing/src/LinkParser.cs | 2 +- ...LinkParserEndpointNameAddressExtensions.cs | 2 +- .../RouteConstraintMatcherExtensions.cs | 2 +- .../RouterMiddlewareLoggerExtensions.cs | 2 +- .../src/Logging/TreeRouterLoggerExtensions.cs | 2 +- .../src/MapRouteRouteBuilderExtensions.cs | 2 +- src/Http/Routing/src/Matching/CandidateSet.cs | 13 ++-- .../Routing/src/Matching/CandidateState.cs | 6 +- .../Matching/DataSourceDependentMatcher.cs | 4 +- .../src/Matching/DefaultEndpointSelector.cs | 8 +-- src/Http/Routing/src/Matching/DfaMatcher.cs | 13 ++-- .../Routing/src/Matching/DfaMatcherBuilder.cs | 2 + src/Http/Routing/src/Matching/DfaNode.cs | 4 +- .../Routing/src/Matching/EndpointComparer.cs | 8 +-- .../Routing/src/Matching/HostMatcherPolicy.cs | 14 ++-- .../src/Matching/HttpMethodMatcherPolicy.cs | 26 +++---- .../Routing/src/Matching/ILEmitTrieFactory.cs | 4 +- .../src/Matching/ILEmitTrieJumpTable.cs | 4 +- src/Http/Routing/src/Matching/PathSegment.cs | 4 +- .../src/Microsoft.AspNetCore.Routing.csproj | 2 +- src/Http/Routing/src/NullRouter.cs | 4 +- .../Routing/src/ParameterPolicyActivator.cs | 3 +- .../Routing/src/ParameterPolicyFactory.cs | 4 +- src/Http/Routing/src/PathTokenizer.cs | 2 + .../DefaultRoutePatternTransformer.cs | 2 + .../src/Patterns/RouteParameterParser.cs | 2 +- src/Http/Routing/src/Patterns/RoutePattern.cs | 16 ++--- .../src/Patterns/RoutePatternException.cs | 4 +- .../src/Patterns/RoutePatternFactory.cs | 68 +++++++++---------- .../src/Patterns/RoutePatternMatcher.cs | 2 + .../src/Patterns/RoutePatternParameterPart.cs | 8 +-- .../RoutePatternParameterPolicyReference.cs | 10 +-- .../src/Patterns/RoutePatternParser.cs | 2 + .../src/Patterns/RoutePatternTransformer.cs | 4 +- .../RequestDelegateRouteBuilderExtensions.cs | 2 +- src/Http/Routing/src/Route.cs | 4 +- src/Http/Routing/src/RouteBase.cs | 16 ++--- .../Routing/src/RouteConstraintMatcher.cs | 2 +- src/Http/Routing/src/RouteEndpoint.cs | 6 +- ...dpointModel.cs => RouteEndpointBuilder.cs} | 6 ++ src/Http/Routing/src/RouteOptions.cs | 2 +- .../Routing/src/RouteValueEqualityComparer.cs | 6 +- .../Routing/src/RouteValuesAddressScheme.cs | 6 +- .../Routing/src/Template/InlineConstraint.cs | 4 +- .../Routing/src/Template/RouteTemplate.cs | 2 +- .../Routing/src/Template/TemplateBinder.cs | 2 - .../Routing/src/Template/TemplateMatcher.cs | 2 +- src/Http/Routing/src/Template/TemplatePart.cs | 23 ++++--- .../src/Template/TemplateValuesResult.cs | 6 +- src/Http/Routing/src/Tree/InboundMatch.cs | 4 +- .../Routing/src/Tree/InboundRouteEntry.cs | 2 + .../src/Tree/LinkGenerationDecisionTree.cs | 2 + src/Http/Routing/src/Tree/OutboundMatch.cs | 4 +- .../Routing/src/Tree/OutboundRouteEntry.cs | 4 +- src/Http/Routing/src/Tree/TreeEnumerator.cs | 2 + src/Http/Routing/src/Tree/TreeRouteBuilder.cs | 2 + src/Http/Routing/src/Tree/TreeRouter.cs | 2 + src/Http/Routing/src/Tree/UrlMatchingNode.cs | 2 + src/Http/Routing/src/Tree/UrlMatchingTree.cs | 2 +- 100 files changed, 344 insertions(+), 287 deletions(-) rename src/Http/Routing/src/{RouteEndpointModel.cs => RouteEndpointBuilder.cs} (82%) diff --git a/src/Http/Http.Abstractions/src/Routing/Endpoint.cs b/src/Http/Http.Abstractions/src/Routing/Endpoint.cs index 4733177674..1f795f74ad 100644 --- a/src/Http/Http.Abstractions/src/Routing/Endpoint.cs +++ b/src/Http/Http.Abstractions/src/Routing/Endpoint.cs @@ -20,8 +20,8 @@ namespace Microsoft.AspNetCore.Http /// public Endpoint( RequestDelegate requestDelegate, - EndpointMetadataCollection metadata, - string displayName) + EndpointMetadataCollection? metadata, + string? displayName) { // All are allowed to be null RequestDelegate = requestDelegate; @@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Http /// /// Gets the informational display name of this endpoint. /// - public string DisplayName { get; } + public string? DisplayName { get; } /// /// Gets the collection of metadata associated with this endpoint. diff --git a/src/Http/Routing.Abstractions/src/IRouteConstraint.cs b/src/Http/Routing.Abstractions/src/IRouteConstraint.cs index 076706dcd9..37ea18c672 100644 --- a/src/Http/Routing.Abstractions/src/IRouteConstraint.cs +++ b/src/Http/Routing.Abstractions/src/IRouteConstraint.cs @@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Routing /// true if the URL parameter contains a valid value; otherwise, false. bool Match( HttpContext? httpContext, - IRouter route, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection); diff --git a/src/Http/Routing/src/ArrayBuilder.cs b/src/Http/Routing/src/ArrayBuilder.cs index ff20c2e64d..ede0f990b6 100644 --- a/src/Http/Routing/src/ArrayBuilder.cs +++ b/src/Http/Routing/src/ArrayBuilder.cs @@ -6,6 +6,7 @@ // // See https://github.com/dotnet/corefx/blob/143df51926f2ad397fef9c9ca7ede88e2721e801/src/Common/src/System/Collections/Generic/ArrayBuilder.cs +#nullable disable using System; using System.Diagnostics; diff --git a/src/Http/Routing/src/Builder/EndpointRoutingApplicationBuilderExtensions.cs b/src/Http/Routing/src/Builder/EndpointRoutingApplicationBuilderExtensions.cs index d1d3617210..dbc3432107 100644 --- a/src/Http/Routing/src/Builder/EndpointRoutingApplicationBuilderExtensions.cs +++ b/src/Http/Routing/src/Builder/EndpointRoutingApplicationBuilderExtensions.cs @@ -128,7 +128,7 @@ namespace Microsoft.AspNetCore.Builder } // If someone messes with this, just let it crash. - endpointRouteBuilder = (DefaultEndpointRouteBuilder)obj; + endpointRouteBuilder = (DefaultEndpointRouteBuilder)obj!; // This check handles the case where Map or something else that forks the pipeline is called between the two // routing middleware. diff --git a/src/Http/Routing/src/CompositeEndpointDataSource.cs b/src/Http/Routing/src/CompositeEndpointDataSource.cs index 008ad09a9c..9d0a97c832 100644 --- a/src/Http/Routing/src/CompositeEndpointDataSource.cs +++ b/src/Http/Routing/src/CompositeEndpointDataSource.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; using System.Threading; @@ -21,8 +22,8 @@ namespace Microsoft.AspNetCore.Routing public sealed class CompositeEndpointDataSource : EndpointDataSource { private readonly object _lock; - private readonly ICollection _dataSources; - private IReadOnlyList _endpoints; + private readonly ICollection _dataSources = default!; + private IReadOnlyList _endpoints = default!; private IChangeToken _consumerChangeToken; private CancellationTokenSource _cts; @@ -49,7 +50,7 @@ namespace Microsoft.AspNetCore.Routing } } - private void OnDataSourcesChanged(object sender, NotifyCollectionChangedEventArgs e) + private void OnDataSourcesChanged(object? sender, NotifyCollectionChangedEventArgs e) { lock (_lock) { @@ -140,6 +141,7 @@ namespace Microsoft.AspNetCore.Routing } } + [MemberNotNull(nameof(_cts), nameof(_consumerChangeToken))] private void CreateChangeToken() { _cts = new CancellationTokenSource(); @@ -198,7 +200,7 @@ namespace Microsoft.AspNetCore.Routing } return sb.ToString(); - IEnumerable FormatValues(IEnumerable> values) + IEnumerable FormatValues(IEnumerable> values) { return values.Select( kvp => diff --git a/src/Http/Routing/src/Constraints/BoolRouteConstraint.cs b/src/Http/Routing/src/Constraints/BoolRouteConstraint.cs index d19000f9de..26a37c2e80 100644 --- a/src/Http/Routing/src/Constraints/BoolRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/BoolRouteConstraint.cs @@ -14,8 +14,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -44,4 +44,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/CompositeRouteConstraint.cs b/src/Http/Routing/src/Constraints/CompositeRouteConstraint.cs index 468699ce8a..023a32eae8 100644 --- a/src/Http/Routing/src/Constraints/CompositeRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/CompositeRouteConstraint.cs @@ -33,8 +33,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -60,4 +60,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return true; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/DateTimeRouteConstraint.cs b/src/Http/Routing/src/Constraints/DateTimeRouteConstraint.cs index a912a84f52..2d7fdd1bc2 100644 --- a/src/Http/Routing/src/Constraints/DateTimeRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/DateTimeRouteConstraint.cs @@ -20,8 +20,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -50,4 +50,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/DecimalRouteConstraint.cs b/src/Http/Routing/src/Constraints/DecimalRouteConstraint.cs index 9fcc80a9f1..b08d13d515 100644 --- a/src/Http/Routing/src/Constraints/DecimalRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/DecimalRouteConstraint.cs @@ -14,8 +14,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -44,4 +44,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/DoubleRouteConstraint.cs b/src/Http/Routing/src/Constraints/DoubleRouteConstraint.cs index 405e46cb0d..e3c351d3e8 100644 --- a/src/Http/Routing/src/Constraints/DoubleRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/DoubleRouteConstraint.cs @@ -14,8 +14,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -48,4 +48,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/FileNameRouteConstraint.cs b/src/Http/Routing/src/Constraints/FileNameRouteConstraint.cs index 50d85eb86f..0051ef3fb1 100644 --- a/src/Http/Routing/src/Constraints/FileNameRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/FileNameRouteConstraint.cs @@ -85,8 +85,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) diff --git a/src/Http/Routing/src/Constraints/FloatRouteConstraint.cs b/src/Http/Routing/src/Constraints/FloatRouteConstraint.cs index fbdd3c87d6..5108da1bcb 100644 --- a/src/Http/Routing/src/Constraints/FloatRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/FloatRouteConstraint.cs @@ -14,8 +14,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -48,4 +48,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/GuidRouteConstraint.cs b/src/Http/Routing/src/Constraints/GuidRouteConstraint.cs index b87069df98..101621c068 100644 --- a/src/Http/Routing/src/Constraints/GuidRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/GuidRouteConstraint.cs @@ -16,8 +16,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -46,4 +46,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/HttpMethodRouteConstraint.cs b/src/Http/Routing/src/Constraints/HttpMethodRouteConstraint.cs index ea20e81419..b2ad0eff33 100644 --- a/src/Http/Routing/src/Constraints/HttpMethodRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/HttpMethodRouteConstraint.cs @@ -35,8 +35,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public virtual bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) diff --git a/src/Http/Routing/src/Constraints/IntRouteConstraint.cs b/src/Http/Routing/src/Constraints/IntRouteConstraint.cs index 34ff02331e..6190180858 100644 --- a/src/Http/Routing/src/Constraints/IntRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/IntRouteConstraint.cs @@ -14,8 +14,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -44,4 +44,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/LengthRouteConstraint.cs b/src/Http/Routing/src/Constraints/LengthRouteConstraint.cs index 8964f2549e..52fecb9d42 100644 --- a/src/Http/Routing/src/Constraints/LengthRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/LengthRouteConstraint.cs @@ -71,8 +71,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -89,7 +89,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints if (values.TryGetValue(routeKey, out var value) && value != null) { - var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); + var valueString = Convert.ToString(value, CultureInfo.InvariantCulture)!; var length = valueString.Length; return length >= MinLength && length <= MaxLength; } @@ -97,4 +97,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/LongRouteConstraint.cs b/src/Http/Routing/src/Constraints/LongRouteConstraint.cs index 8ed5cccc46..493be38eb1 100644 --- a/src/Http/Routing/src/Constraints/LongRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/LongRouteConstraint.cs @@ -14,8 +14,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -44,4 +44,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/MaxLengthRouteConstraint.cs b/src/Http/Routing/src/Constraints/MaxLengthRouteConstraint.cs index 4005a041aa..470f9110d8 100644 --- a/src/Http/Routing/src/Constraints/MaxLengthRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/MaxLengthRouteConstraint.cs @@ -34,8 +34,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -52,11 +52,11 @@ namespace Microsoft.AspNetCore.Routing.Constraints if (values.TryGetValue(routeKey, out var value) && value != null) { - var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); + var valueString = Convert.ToString(value, CultureInfo.InvariantCulture)!; return valueString.Length <= MaxLength; } return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/MaxRouteConstraint.cs b/src/Http/Routing/src/Constraints/MaxRouteConstraint.cs index dab22f5075..c7d5e91dfe 100644 --- a/src/Http/Routing/src/Constraints/MaxRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/MaxRouteConstraint.cs @@ -28,8 +28,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -56,4 +56,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/MinLengthRouteConstraint.cs b/src/Http/Routing/src/Constraints/MinLengthRouteConstraint.cs index c58bd0b30d..9c7b54704b 100644 --- a/src/Http/Routing/src/Constraints/MinLengthRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/MinLengthRouteConstraint.cs @@ -34,8 +34,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -52,11 +52,11 @@ namespace Microsoft.AspNetCore.Routing.Constraints if (values.TryGetValue(routeKey, out var value) && value != null) { - var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); + var valueString = Convert.ToString(value, CultureInfo.InvariantCulture)!; return valueString.Length >= MinLength; } return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/MinRouteConstraint.cs b/src/Http/Routing/src/Constraints/MinRouteConstraint.cs index 450ed46fbf..ef504f446d 100644 --- a/src/Http/Routing/src/Constraints/MinRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/MinRouteConstraint.cs @@ -28,8 +28,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -56,4 +56,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/NonFileNameRouteConstraint.cs b/src/Http/Routing/src/Constraints/NonFileNameRouteConstraint.cs index c6867b6e05..9d58423b9a 100644 --- a/src/Http/Routing/src/Constraints/NonFileNameRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/NonFileNameRouteConstraint.cs @@ -81,8 +81,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) diff --git a/src/Http/Routing/src/Constraints/NullRouteConstraint.cs b/src/Http/Routing/src/Constraints/NullRouteConstraint.cs index f61e740419..7accfcb166 100644 --- a/src/Http/Routing/src/Constraints/NullRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/NullRouteConstraint.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Http; @@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints { } - public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) + public bool Match(HttpContext? httpContext, IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) { return true; } diff --git a/src/Http/Routing/src/Constraints/OptionalRouteConstraint.cs b/src/Http/Routing/src/Constraints/OptionalRouteConstraint.cs index 6b7cf8a1a5..f66bdd67de 100644 --- a/src/Http/Routing/src/Constraints/OptionalRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/OptionalRouteConstraint.cs @@ -24,8 +24,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints public IRouteConstraint InnerConstraint { get; } public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -52,4 +52,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return true; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/RangeRouteConstraint.cs b/src/Http/Routing/src/Constraints/RangeRouteConstraint.cs index 34c946fa66..3e7dde78cb 100644 --- a/src/Http/Routing/src/Constraints/RangeRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/RangeRouteConstraint.cs @@ -42,8 +42,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -70,4 +70,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/RegexRouteConstraint.cs b/src/Http/Routing/src/Constraints/RegexRouteConstraint.cs index 9269de51a3..4d17f5d7ea 100644 --- a/src/Http/Routing/src/Constraints/RegexRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/RegexRouteConstraint.cs @@ -38,8 +38,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints public Regex Constraint { get; private set; } public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -57,7 +57,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints if (values.TryGetValue(routeKey, out var routeValue) && routeValue != null) { - var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture); + var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture)!; return Constraint.IsMatch(parameterValueString); } diff --git a/src/Http/Routing/src/Constraints/RequiredRouteConstraint.cs b/src/Http/Routing/src/Constraints/RequiredRouteConstraint.cs index e33e1e23a6..71b594a07b 100644 --- a/src/Http/Routing/src/Constraints/RequiredRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/RequiredRouteConstraint.cs @@ -18,8 +18,8 @@ namespace Microsoft.AspNetCore.Routing.Constraints { /// public bool Match( - HttpContext httpContext, - IRouter route, + HttpContext? httpContext, + IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) @@ -44,4 +44,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Constraints/StringRouteConstraint.cs b/src/Http/Routing/src/Constraints/StringRouteConstraint.cs index fb6a3568c3..737cf22812 100644 --- a/src/Http/Routing/src/Constraints/StringRouteConstraint.cs +++ b/src/Http/Routing/src/Constraints/StringRouteConstraint.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints } /// - public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) + public bool Match(HttpContext? httpContext, IRouter? route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) { if (routeKey == null) { @@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints if (values.TryGetValue(routeKey, out var routeValue) && routeValue != null) { - var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture); + var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture)!; return parameterValueString.Equals(_value, StringComparison.OrdinalIgnoreCase); } @@ -52,4 +52,4 @@ namespace Microsoft.AspNetCore.Routing.Constraints return false; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/DataSourceDependentCache.cs b/src/Http/Routing/src/DataSourceDependentCache.cs index f31807e171..53b8572694 100644 --- a/src/Http/Routing/src/DataSourceDependentCache.cs +++ b/src/Http/Routing/src/DataSourceDependentCache.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Threading; diff --git a/src/Http/Routing/src/DecisionTree/DecisionCriterion.cs b/src/Http/Routing/src/DecisionTree/DecisionCriterion.cs index efc9c742d2..ce8ec11498 100644 --- a/src/Http/Routing/src/DecisionTree/DecisionCriterion.cs +++ b/src/Http/Routing/src/DecisionTree/DecisionCriterion.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System.Collections.Generic; namespace Microsoft.AspNetCore.Routing.DecisionTree @@ -11,4 +13,4 @@ namespace Microsoft.AspNetCore.Routing.DecisionTree public Dictionary> Branches { get; set; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/DecisionTree/DecisionTreeNode.cs b/src/Http/Routing/src/DecisionTree/DecisionTreeNode.cs index 1be3064c62..df28097786 100644 --- a/src/Http/Routing/src/DecisionTree/DecisionTreeNode.cs +++ b/src/Http/Routing/src/DecisionTree/DecisionTreeNode.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System.Collections.Generic; namespace Microsoft.AspNetCore.Routing.DecisionTree @@ -17,4 +19,4 @@ namespace Microsoft.AspNetCore.Routing.DecisionTree // matching the input data. public IList> Criteria { get; set; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/DecisionTree/ItemDescriptor.cs b/src/Http/Routing/src/DecisionTree/ItemDescriptor.cs index 84a6279c27..e5146f98c4 100644 --- a/src/Http/Routing/src/DecisionTree/ItemDescriptor.cs +++ b/src/Http/Routing/src/DecisionTree/ItemDescriptor.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System.Collections.Generic; namespace Microsoft.AspNetCore.Routing.DecisionTree @@ -13,4 +15,4 @@ namespace Microsoft.AspNetCore.Routing.DecisionTree public TItem Item { get; set; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/DefaultLinkGenerator.cs b/src/Http/Routing/src/DefaultLinkGenerator.cs index 2dda332858..e080aaec50 100644 --- a/src/Http/Routing/src/DefaultLinkGenerator.cs +++ b/src/Http/Routing/src/DefaultLinkGenerator.cs @@ -325,7 +325,7 @@ namespace Microsoft.AspNetCore.Routing } // Also called from DefaultLinkGenerationTemplate - public static RouteValueDictionary? GetAmbientValues(HttpContext httpContext) + public static RouteValueDictionary? GetAmbientValues(HttpContext? httpContext) { return httpContext?.Features.Get()?.RouteValues; } diff --git a/src/Http/Routing/src/DefaultLinkParser.cs b/src/Http/Routing/src/DefaultLinkParser.cs index 8c922e2668..07aaacbb03 100644 --- a/src/Http/Routing/src/DefaultLinkParser.cs +++ b/src/Http/Routing/src/DefaultLinkParser.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; @@ -46,7 +47,7 @@ namespace Microsoft.AspNetCore.Routing _createMatcher = CreateRoutePatternMatcher; } - public override RouteValueDictionary ParsePathByAddress(TAddress address, PathString path) + public override RouteValueDictionary? ParsePathByAddress(TAddress address, PathString path) { var endpoints = GetEndpoints(address); if (endpoints.Count == 0) @@ -117,7 +118,7 @@ namespace Microsoft.AspNetCore.Routing internal MatcherState GetMatcherState(RouteEndpoint endpoint) => _matcherCache.EnsureInitialized().GetOrAdd(endpoint, _createMatcher); // Internal for testing - internal bool TryParse(RouteEndpoint endpoint, PathString path, out RouteValueDictionary values) + internal bool TryParse(RouteEndpoint endpoint, PathString path, [NotNullWhen(true)] out RouteValueDictionary? values) { var (matcher, constraints) = GetMatcherState(endpoint); @@ -168,6 +169,7 @@ namespace Microsoft.AspNetCore.Routing } } +#nullable disable private static class Log { public static class EventIds diff --git a/src/Http/Routing/src/DefaultParameterPolicyFactory.cs b/src/Http/Routing/src/DefaultParameterPolicyFactory.cs index 1982d75518..059c4bb31c 100644 --- a/src/Http/Routing/src/DefaultParameterPolicyFactory.cs +++ b/src/Http/Routing/src/DefaultParameterPolicyFactory.cs @@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Routing _serviceProvider = serviceProvider; } - public override IParameterPolicy Create(RoutePatternParameterPart parameter, IParameterPolicy parameterPolicy) + public override IParameterPolicy Create(RoutePatternParameterPart? parameter, IParameterPolicy parameterPolicy) { if (parameterPolicy == null) { @@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Routing return parameterPolicy; } - public override IParameterPolicy Create(RoutePatternParameterPart parameter, string inlineText) + public override IParameterPolicy Create(RoutePatternParameterPart? parameter, string inlineText) { if (inlineText == null) { diff --git a/src/Http/Routing/src/EndpointMiddleware.cs b/src/Http/Routing/src/EndpointMiddleware.cs index 0e11e560b7..f5c2b0912f 100644 --- a/src/Http/Routing/src/EndpointMiddleware.cs +++ b/src/Http/Routing/src/EndpointMiddleware.cs @@ -101,6 +101,7 @@ namespace Microsoft.AspNetCore.Routing "Configure your application startup by adding app.UseCors() inside the call to Configure(..) in the application startup code. The call to app.UseCors() must appear between app.UseRouting() and app.UseEndpoints(...)."); } +#nullable disable private static class Log { private static readonly Action _executingEndpoint = LoggerMessage.Define( diff --git a/src/Http/Routing/src/EndpointNameAddressScheme.cs b/src/Http/Routing/src/EndpointNameAddressScheme.cs index 9d2753cf52..24799d2d39 100644 --- a/src/Http/Routing/src/EndpointNameAddressScheme.cs +++ b/src/Http/Routing/src/EndpointNameAddressScheme.cs @@ -92,7 +92,7 @@ namespace Microsoft.AspNetCore.Routing throw new InvalidOperationException(builder.ToString()); - string GetEndpointName(Endpoint endpoint) + string? GetEndpointName(Endpoint endpoint) { if (endpoint.Metadata.GetMetadata()?.SuppressLinkGeneration == true) { diff --git a/src/Http/Routing/src/EndpointRoutingMiddleware.cs b/src/Http/Routing/src/EndpointRoutingMiddleware.cs index 482e86bb6d..82c841941c 100644 --- a/src/Http/Routing/src/EndpointRoutingMiddleware.cs +++ b/src/Http/Routing/src/EndpointRoutingMiddleware.cs @@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Routing private readonly DiagnosticListener _diagnosticListener; private readonly RequestDelegate _next; - private Task _initializationTask; + private Task? _initializationTask; public EndpointRoutingMiddleware( MatcherFactory matcherFactory, @@ -165,6 +165,7 @@ namespace Microsoft.AspNetCore.Routing } } +#nullable disable private static class Log { private static readonly Action _matchSuccess = LoggerMessage.Define( diff --git a/src/Http/Routing/src/InlineRouteParameterParser.cs b/src/Http/Routing/src/InlineRouteParameterParser.cs index 33c70558f2..49dd434d37 100644 --- a/src/Http/Routing/src/InlineRouteParameterParser.cs +++ b/src/Http/Routing/src/InlineRouteParameterParser.cs @@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Routing var parseResults = ParseConstraints(routeParameter, currentIndex, endIndex); currentIndex = parseResults.CurrentIndex; - string defaultValue = null; + string? defaultValue = null; if (currentIndex <= endIndex && routeParameter[currentIndex] == '=') { diff --git a/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs b/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs index dd0e462c20..bc6ca2fc24 100644 --- a/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs +++ b/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Http; @@ -27,14 +27,14 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null. - public static string GetPathByName( + public static string? GetPathByName( this LinkGenerator generator, HttpContext httpContext, string endpointName, - object values, + object? values, PathString? pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { @@ -74,13 +74,13 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null. - public static string GetPathByName( + public static string? GetPathByName( this LinkGenerator generator, string endpointName, - object values, + object? values, PathString pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { @@ -126,16 +126,16 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// - public static string GetUriByName( + public static string? GetUriByName( this LinkGenerator generator, HttpContext httpContext, string endpointName, - object values, - string scheme = default, + object? values, + string? scheme = default, HostString? host = default, PathString? pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { @@ -190,15 +190,15 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// - public static string GetUriByName( + public static string? GetUriByName( this LinkGenerator generator, string endpointName, - object values, + object? values, string scheme, HostString host, PathString pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { diff --git a/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs b/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs index f683b4d3ca..ddf4bb9e91 100644 --- a/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs +++ b/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Http; @@ -27,14 +27,14 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null. - public static string GetPathByRouteValues( + public static string? GetPathByRouteValues( this LinkGenerator generator, HttpContext httpContext, - string routeName, - object values, + string? routeName, + object? values, PathString? pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { @@ -70,13 +70,13 @@ namespace Microsoft.AspNetCore.Routing /// names from RouteOptions. /// /// A URI with an absolute path, or null. - public static string GetPathByRouteValues( + public static string? GetPathByRouteValues( this LinkGenerator generator, - string routeName, - object values, + string? routeName, + object? values, PathString pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { @@ -118,16 +118,16 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// - public static string GetUriByRouteValues( + public static string? GetUriByRouteValues( this LinkGenerator generator, HttpContext httpContext, - string routeName, - object values, - string scheme = default, + string? routeName, + object? values, + string? scheme = default, HostString? host = default, PathString? pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { @@ -178,15 +178,15 @@ namespace Microsoft.AspNetCore.Routing /// your deployment environment. /// /// - public static string GetUriByRouteValues( + public static string? GetUriByRouteValues( this LinkGenerator generator, - string routeName, - object values, + string? routeName, + object? values, string scheme, HostString host, PathString pathBase = default, FragmentString fragment = default, - LinkOptions options = default) + LinkOptions? options = default) { if (generator == null) { @@ -197,7 +197,7 @@ namespace Microsoft.AspNetCore.Routing return generator.GetUriByAddress(address, address.ExplicitValues, scheme, host, pathBase, fragment, options); } - private static RouteValuesAddress CreateAddress(HttpContext httpContext, string routeName, object values) + private static RouteValuesAddress CreateAddress(HttpContext? httpContext, string? routeName, object? values) { return new RouteValuesAddress() { diff --git a/src/Http/Routing/src/LinkParser.cs b/src/Http/Routing/src/LinkParser.cs index b5135b3f01..88ed8c8131 100644 --- a/src/Http/Routing/src/LinkParser.cs +++ b/src/Http/Routing/src/LinkParser.cs @@ -32,6 +32,6 @@ namespace Microsoft.AspNetCore.Routing /// of the route patterns match the provided URI path. /// /// - public abstract RouteValueDictionary ParsePathByAddress(TAddress address, PathString path); + public abstract RouteValueDictionary? ParsePathByAddress(TAddress address, PathString path); } } diff --git a/src/Http/Routing/src/LinkParserEndpointNameAddressExtensions.cs b/src/Http/Routing/src/LinkParserEndpointNameAddressExtensions.cs index 904dc0b885..2217a8eb45 100644 --- a/src/Http/Routing/src/LinkParserEndpointNameAddressExtensions.cs +++ b/src/Http/Routing/src/LinkParserEndpointNameAddressExtensions.cs @@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Routing /// of the route patterns match the provided URI path. /// /// - public static RouteValueDictionary ParsePathByEndpointName( + public static RouteValueDictionary? ParsePathByEndpointName( this LinkParser parser, string endpointName, PathString path) diff --git a/src/Http/Routing/src/Logging/RouteConstraintMatcherExtensions.cs b/src/Http/Routing/src/Logging/RouteConstraintMatcherExtensions.cs index afa7337e75..9415831bdc 100644 --- a/src/Http/Routing/src/Logging/RouteConstraintMatcherExtensions.cs +++ b/src/Http/Routing/src/Logging/RouteConstraintMatcherExtensions.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Routing.Logging { internal static class RouteConstraintMatcherExtensions { - private static readonly Action _constraintNotMatched; + private static readonly Action _constraintNotMatched; static RouteConstraintMatcherExtensions() { diff --git a/src/Http/Routing/src/Logging/RouterMiddlewareLoggerExtensions.cs b/src/Http/Routing/src/Logging/RouterMiddlewareLoggerExtensions.cs index cdbd644775..76f569c150 100644 --- a/src/Http/Routing/src/Logging/RouterMiddlewareLoggerExtensions.cs +++ b/src/Http/Routing/src/Logging/RouterMiddlewareLoggerExtensions.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Routing.Logging { internal static class RouterMiddlewareLoggerExtensions { - private static readonly Action _requestNotMatched; + private static readonly Action _requestNotMatched; static RouterMiddlewareLoggerExtensions() { diff --git a/src/Http/Routing/src/Logging/TreeRouterLoggerExtensions.cs b/src/Http/Routing/src/Logging/TreeRouterLoggerExtensions.cs index e6733263f9..bcb0f343a7 100644 --- a/src/Http/Routing/src/Logging/TreeRouterLoggerExtensions.cs +++ b/src/Http/Routing/src/Logging/TreeRouterLoggerExtensions.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Routing.Logging { internal static class TreeRouterLoggerExtensions { - private static readonly Action _requestMatchedRoute; + private static readonly Action _requestMatchedRoute; static TreeRouterLoggerExtensions() { diff --git a/src/Http/Routing/src/MapRouteRouteBuilderExtensions.cs b/src/Http/Routing/src/MapRouteRouteBuilderExtensions.cs index 23f4536b9b..56f91c4050 100644 --- a/src/Http/Routing/src/MapRouteRouteBuilderExtensions.cs +++ b/src/Http/Routing/src/MapRouteRouteBuilderExtensions.cs @@ -154,7 +154,7 @@ namespace Microsoft.AspNetCore.Builder return routeConstraint; } - var parameterPolicy = _parameterPolicyFactory.Create(null, inlineConstraint); + var parameterPolicy = _parameterPolicyFactory.Create(null!, inlineConstraint); if (parameterPolicy != null) { // Logic inside Route will skip adding NullRouteConstraint diff --git a/src/Http/Routing/src/Matching/CandidateSet.cs b/src/Http/Routing/src/Matching/CandidateSet.cs index f90183897d..0d07dc5940 100644 --- a/src/Http/Routing/src/Matching/CandidateSet.cs +++ b/src/Http/Routing/src/Matching/CandidateSet.cs @@ -7,6 +7,7 @@ using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Runtime.CompilerServices; using Microsoft.AspNetCore.Http; @@ -176,15 +177,17 @@ namespace Microsoft.AspNetCore.Routing.Matching /// The to replace the original at /// the . /// - public void ReplaceEndpoint(int index, Endpoint endpoint, RouteValueDictionary values) + public void ReplaceEndpoint(int index, Endpoint? endpoint, RouteValueDictionary? values) { // Friendliness for inlining if ((uint)index >= Count) { ThrowIndexArgumentOutOfRangeException(); } - - Candidates[index] = new CandidateState(endpoint, values, Candidates[index].Score); + + // CandidateState allows a null-valued endpoint. However a validate candidate should never have a null endpoint + // We'll make lives easier for matcher policies by declaring it as non-null. + Candidates[index] = new CandidateState(endpoint!, values, Candidates[index].Score); if (endpoint == null) { @@ -354,7 +357,7 @@ namespace Microsoft.AspNetCore.Routing.Matching { if (GetOriginalScore(i) == score) { - duplicates.Add(candidates[i].Endpoint); + duplicates.Add(candidates[i].Endpoint!); } } @@ -366,11 +369,13 @@ namespace Microsoft.AspNetCore.Routing.Matching } } + [DoesNotReturn] private static void ThrowIndexArgumentOutOfRangeException() { throw new ArgumentOutOfRangeException("index"); } + [DoesNotReturn] private static void ThrowArgumentNullException(string parameter) { throw new ArgumentNullException(parameter); diff --git a/src/Http/Routing/src/Matching/CandidateState.cs b/src/Http/Routing/src/Matching/CandidateState.cs index 5b198beb8e..14b8591c68 100644 --- a/src/Http/Routing/src/Matching/CandidateState.cs +++ b/src/Http/Routing/src/Matching/CandidateState.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Http; @@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Routing.Matching Values = null; } - internal CandidateState(Endpoint endpoint, RouteValueDictionary values, int score) + internal CandidateState(Endpoint endpoint, RouteValueDictionary? values, int score) { Endpoint = endpoint; Values = values; @@ -50,6 +50,6 @@ namespace Microsoft.AspNetCore.Routing.Matching /// Gets associated with the /// and the current request. /// - public RouteValueDictionary Values { get; internal set; } + public RouteValueDictionary? Values { get; internal set; } } } diff --git a/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs b/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs index c757b1646e..bf6c02102e 100644 --- a/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs +++ b/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs @@ -57,10 +57,10 @@ namespace Microsoft.AspNetCore.Routing.Matching public sealed class Lifetime : IDisposable { private readonly object _lock = new object(); - private DataSourceDependentCache _cache; + private DataSourceDependentCache? _cache; private bool _disposed; - public DataSourceDependentCache Cache + public DataSourceDependentCache? Cache { get => _cache; set diff --git a/src/Http/Routing/src/Matching/DefaultEndpointSelector.cs b/src/Http/Routing/src/Matching/DefaultEndpointSelector.cs index cc455d4eb7..31c863a5a9 100644 --- a/src/Http/Routing/src/Matching/DefaultEndpointSelector.cs +++ b/src/Http/Routing/src/Matching/DefaultEndpointSelector.cs @@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Routing.Matching if (CandidateSet.IsValidCandidate(ref state)) { httpContext.SetEndpoint(state.Endpoint); - httpContext.Request.RouteValues = state.Values; + httpContext.Request.RouteValues = state.Values!; } break; @@ -67,8 +67,8 @@ namespace Microsoft.AspNetCore.Routing.Matching HttpContext httpContext, CandidateState[] candidateState) { - Endpoint endpoint = null; - RouteValueDictionary values = null; + Endpoint? endpoint = null; + RouteValueDictionary? values = null; int? foundScore = null; for (var i = 0; i < candidateState.Length; i++) { @@ -110,7 +110,7 @@ namespace Microsoft.AspNetCore.Routing.Matching if (endpoint != null) { httpContext.SetEndpoint(endpoint); - httpContext.Request.RouteValues = values; + httpContext.Request.RouteValues = values!; } } diff --git a/src/Http/Routing/src/Matching/DfaMatcher.cs b/src/Http/Routing/src/Matching/DfaMatcher.cs index d79f13e2ab..e40e21e252 100644 --- a/src/Http/Routing/src/Matching/DfaMatcher.cs +++ b/src/Http/Routing/src/Matching/DfaMatcher.cs @@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Routing.Matching // The sequence of actions we take is optimized to avoid doing expensive work // like creating substrings, creating route value dictionaries, and calling // into policies like versioning. - var path = httpContext.Request.Path.Value; + var path = httpContext.Request.Path.Value!; // First tokenize the path into series of segments. Span buffer = stackalloc PathSegment[_maxSegmentCount]; @@ -119,7 +119,7 @@ namespace Microsoft.AspNetCore.Routing.Matching // We want to create a new array for the route values based on Slots // as a prototype. var prototype = candidate.Slots; - var slots = new KeyValuePair[prototype.Length]; + var slots = new KeyValuePair[prototype.Length]; if ((flags & Candidate.CandidateFlags.HasDefaults) != 0) { @@ -221,7 +221,7 @@ namespace Microsoft.AspNetCore.Routing.Matching } private void ProcessCaptures( - KeyValuePair[] slots, + KeyValuePair[] slots, (string parameterName, int segmentIndex, int slotIndex)[] captures, string path, ReadOnlySpan segments) @@ -235,7 +235,7 @@ namespace Microsoft.AspNetCore.Routing.Matching var segment = segments[segmentIndex]; if (parameterName != null && segment.Length > 0) { - slots[slotIndex] = new KeyValuePair( + slots[slotIndex] = new KeyValuePair( parameterName, path.Substring(segment.Start, segment.Length)); } @@ -244,7 +244,7 @@ namespace Microsoft.AspNetCore.Routing.Matching } private void ProcessCatchAll( - KeyValuePair[] slots, + KeyValuePair[] slots, in (string parameterName, int segmentIndex, int slotIndex) catchAll, string path, ReadOnlySpan segments) @@ -255,7 +255,7 @@ namespace Microsoft.AspNetCore.Routing.Matching if ((uint)segmentIndex < (uint)segments.Length) { var segment = segments[segmentIndex]; - slots[catchAll.slotIndex] = new KeyValuePair( + slots[catchAll.slotIndex] = new KeyValuePair( catchAll.parameterName, path.Substring(segment.Start)); } @@ -333,6 +333,7 @@ namespace Microsoft.AspNetCore.Routing.Matching public static readonly EventId CandidateValid = new EventId(1005, "CandiateValid"); } +#nullable disable private static class Logger { private static readonly Action _candidatesNotFound = LoggerMessage.Define( diff --git a/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs b/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs index 2782f8a3ae..c10c34d12b 100644 --- a/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs +++ b/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Linq; diff --git a/src/Http/Routing/src/Matching/DfaNode.cs b/src/Http/Routing/src/Matching/DfaNode.cs index 602a48a0e2..b0ba4b9887 100644 --- a/src/Http/Routing/src/Matching/DfaNode.cs +++ b/src/Http/Routing/src/Matching/DfaNode.cs @@ -1,6 +1,8 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Diagnostics; diff --git a/src/Http/Routing/src/Matching/EndpointComparer.cs b/src/Http/Routing/src/Matching/EndpointComparer.cs index 7df5de8ea4..b76802f2e6 100644 --- a/src/Http/Routing/src/Matching/EndpointComparer.cs +++ b/src/Http/Routing/src/Matching/EndpointComparer.cs @@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Routing.Matching } } - public int Compare(Endpoint x, Endpoint y) + public int Compare(Endpoint? x, Endpoint? y) { // We don't expose this publicly, and we should never call it on // a null endpoint. @@ -74,7 +74,7 @@ namespace Microsoft.AspNetCore.Routing.Matching return 0; } - public bool Equals(Endpoint x, Endpoint y) + public bool Equals(Endpoint? x, Endpoint? y) { // We don't expose this publicly, and we should never call it on // a null endpoint. @@ -109,7 +109,7 @@ namespace Microsoft.AspNetCore.Routing.Matching { public static readonly IComparer Instance = new OrderComparer(); - public int Compare(Endpoint x, Endpoint y) + public int Compare(Endpoint? x, Endpoint? y) { var routeEndpointX = x as RouteEndpoint; var routeEndpointY = y as RouteEndpoint; @@ -136,7 +136,7 @@ namespace Microsoft.AspNetCore.Routing.Matching { public static readonly IComparer Instance = new PrecedenceComparer(); - public int Compare(Endpoint x, Endpoint y) + public int Compare(Endpoint? x, Endpoint? y) { var routeEndpointX = x as RouteEndpoint; var routeEndpointY = y as RouteEndpoint; diff --git a/src/Http/Routing/src/Matching/HostMatcherPolicy.cs b/src/Http/Routing/src/Matching/HostMatcherPolicy.cs index be6f5bbf84..d0f29612e4 100644 --- a/src/Http/Routing/src/Matching/HostMatcherPolicy.cs +++ b/src/Http/Routing/src/Matching/HostMatcherPolicy.cs @@ -342,7 +342,7 @@ namespace Microsoft.AspNetCore.Routing.Matching private class HostMetadataEndpointComparer : EndpointMetadataComparer { - protected override int CompareMetadata(IHostMetadata x, IHostMetadata y) + protected override int CompareMetadata(IHostMetadata? x, IHostMetadata? y) { // Ignore the metadata if it has an empty list of hosts. return base.CompareMetadata( @@ -391,9 +391,9 @@ namespace Microsoft.AspNetCore.Routing.Matching public readonly int? Port; public readonly string Host; - private readonly string _wildcardEndsWith; + private readonly string? _wildcardEndsWith; - public EdgeKey(string host, int? port) + public EdgeKey(string? host, int? port) { Host = host ?? WildcardHost; Port = port; @@ -421,9 +421,9 @@ namespace Microsoft.AspNetCore.Routing.Matching return Comparer.Default.Compare(Port, other.Port); } - public int CompareTo(object obj) + public int CompareTo(object? obj) { - return CompareTo((EdgeKey)obj); + return CompareTo((EdgeKey)obj!); } public bool Equals(EdgeKey other) @@ -437,7 +437,7 @@ namespace Microsoft.AspNetCore.Routing.Matching { if (HasHostWildcard) { - return host.EndsWith(_wildcardEndsWith, StringComparison.OrdinalIgnoreCase); + return host.EndsWith(_wildcardEndsWith!, StringComparison.OrdinalIgnoreCase); } else { @@ -454,7 +454,7 @@ namespace Microsoft.AspNetCore.Routing.Matching return (Host?.GetHashCode() ?? 0) ^ (Port?.GetHashCode() ?? 0); } - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is EdgeKey key) { diff --git a/src/Http/Routing/src/Matching/HttpMethodMatcherPolicy.cs b/src/Http/Routing/src/Matching/HttpMethodMatcherPolicy.cs index 2dfdefcf02..039d889fed 100644 --- a/src/Http/Routing/src/Matching/HttpMethodMatcherPolicy.cs +++ b/src/Http/Routing/src/Matching/HttpMethodMatcherPolicy.cs @@ -108,7 +108,7 @@ namespace Microsoft.AspNetCore.Routing.Matching // We want to return a 405 iff we eliminated ALL of the currently valid endpoints due to HTTP method // mismatch. bool? needs405Endpoint = null; - HashSet methods = null; + HashSet? methods = null; for (var i = 0; i < candidates.Count; i++) { @@ -168,8 +168,8 @@ namespace Microsoft.AspNetCore.Routing.Matching if (needs405Endpoint == true) { // We saw some endpoints coming in, and we eliminated them all. - httpContext.SetEndpoint(CreateRejectionEndpoint(methods.OrderBy(m => m, StringComparer.OrdinalIgnoreCase))); - httpContext.Request.RouteValues = null; + httpContext.SetEndpoint(CreateRejectionEndpoint(methods!.OrderBy(m => m, StringComparer.OrdinalIgnoreCase))); + httpContext.Request.RouteValues = null!; } return Task.CompletedTask; @@ -329,8 +329,8 @@ namespace Microsoft.AspNetCore.Routing.Matching /// public PolicyJumpTable BuildJumpTable(int exitDestination, IReadOnlyList edges) { - Dictionary destinations = null; - Dictionary corsPreflightDestinations = null; + Dictionary? destinations = null; + Dictionary? corsPreflightDestinations = null; for (var i = 0; i < edges.Count; i++) { // We create this data, so it's safe to cast it. @@ -421,17 +421,17 @@ namespace Microsoft.AspNetCore.Routing.Matching private class HttpMethodPolicyJumpTable : PolicyJumpTable { private readonly int _exitDestination; - private readonly Dictionary _destinations; + private readonly Dictionary? _destinations; private readonly int _corsPreflightExitDestination; - private readonly Dictionary _corsPreflightDestinations; + private readonly Dictionary? _corsPreflightDestinations; private readonly bool _supportsCorsPreflight; public HttpMethodPolicyJumpTable( int exitDestination, - Dictionary destinations, + Dictionary? destinations, int corsPreflightExitDestination, - Dictionary corsPreflightDestinations) + Dictionary? corsPreflightDestinations) { _exitDestination = exitDestination; _destinations = destinations; @@ -466,7 +466,7 @@ namespace Microsoft.AspNetCore.Routing.Matching private class HttpMethodMetadataEndpointComparer : EndpointMetadataComparer { - protected override int CompareMetadata(IHttpMethodMetadata x, IHttpMethodMetadata y) + protected override int CompareMetadata(IHttpMethodMetadata? x, IHttpMethodMetadata? y) { // Ignore the metadata if it has an empty list of HTTP methods. return base.CompareMetadata( @@ -501,9 +501,9 @@ namespace Microsoft.AspNetCore.Routing.Matching return IsCorsPreflightRequest.CompareTo(other.IsCorsPreflightRequest); } - public int CompareTo(object obj) + public int CompareTo(object? obj) { - return CompareTo((EdgeKey)obj); + return CompareTo((EdgeKey)obj!); } public bool Equals(EdgeKey other) @@ -513,7 +513,7 @@ namespace Microsoft.AspNetCore.Routing.Matching HttpMethods.Equals(HttpMethod, other.HttpMethod); } - public override bool Equals(object obj) + public override bool Equals(object? obj) { var other = obj as EdgeKey?; return other == null ? false : Equals(other.Value); diff --git a/src/Http/Routing/src/Matching/ILEmitTrieFactory.cs b/src/Http/Routing/src/Matching/ILEmitTrieFactory.cs index 3cb240c2fa..18a60c4e0d 100644 --- a/src/Http/Routing/src/Matching/ILEmitTrieFactory.cs +++ b/src/Http/Routing/src/Matching/ILEmitTrieFactory.cs @@ -1,6 +1,8 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Diagnostics; using System.Linq; diff --git a/src/Http/Routing/src/Matching/ILEmitTrieJumpTable.cs b/src/Http/Routing/src/Matching/ILEmitTrieJumpTable.cs index e59f283435..18bdd2bc35 100644 --- a/src/Http/Routing/src/Matching/ILEmitTrieJumpTable.cs +++ b/src/Http/Routing/src/Matching/ILEmitTrieJumpTable.cs @@ -1,6 +1,8 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Threading; using System.Threading.Tasks; diff --git a/src/Http/Routing/src/Matching/PathSegment.cs b/src/Http/Routing/src/Matching/PathSegment.cs index a5f570f8b5..fd8d8a9223 100644 --- a/src/Http/Routing/src/Matching/PathSegment.cs +++ b/src/Http/Routing/src/Matching/PathSegment.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Routing.Matching Length = length; } - public override bool Equals(object obj) + public override bool Equals(object? obj) { return obj is PathSegment segment ? Equals(segment) : false; } diff --git a/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj b/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj index 1937aae7f6..9ff3925225 100644 --- a/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj +++ b/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj @@ -12,7 +12,7 @@ Microsoft.AspNetCore.Routing.RouteCollection aspnetcore;routing true false - annotations + enable diff --git a/src/Http/Routing/src/NullRouter.cs b/src/Http/Routing/src/NullRouter.cs index 9fd1908942..2823067b5e 100644 --- a/src/Http/Routing/src/NullRouter.cs +++ b/src/Http/Routing/src/NullRouter.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Threading.Tasks; @@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Routing { } - public VirtualPathData GetVirtualPath(VirtualPathContext context) + public VirtualPathData? GetVirtualPath(VirtualPathContext context) { return null; } diff --git a/src/Http/Routing/src/ParameterPolicyActivator.cs b/src/Http/Routing/src/ParameterPolicyActivator.cs index b83c5c186b..81da4d49e9 100644 --- a/src/Http/Routing/src/ParameterPolicyActivator.cs +++ b/src/Http/Routing/src/ParameterPolicyActivator.cs @@ -1,12 +1,13 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Reflection; -using System.Text; using Microsoft.Extensions.DependencyInjection; namespace Microsoft.AspNetCore.Routing diff --git a/src/Http/Routing/src/ParameterPolicyFactory.cs b/src/Http/Routing/src/ParameterPolicyFactory.cs index 2d8e665b47..95212e1263 100644 --- a/src/Http/Routing/src/ParameterPolicyFactory.cs +++ b/src/Http/Routing/src/ParameterPolicyFactory.cs @@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Routing /// The parameter the parameter policy is being created for. /// An existing parameter policy. /// The for the parameter. - public abstract IParameterPolicy Create(RoutePatternParameterPart parameter, IParameterPolicy parameterPolicy); + public abstract IParameterPolicy Create(RoutePatternParameterPart? parameter, IParameterPolicy parameterPolicy); /// /// Creates a parameter policy. @@ -34,7 +34,7 @@ namespace Microsoft.AspNetCore.Routing /// The parameter the parameter policy is being created for. /// The reference to resolve. /// The for the parameter. - public IParameterPolicy Create(RoutePatternParameterPart parameter, RoutePatternParameterPolicyReference reference) + public IParameterPolicy Create(RoutePatternParameterPart? parameter, RoutePatternParameterPolicyReference reference) { if (reference == null) { diff --git a/src/Http/Routing/src/PathTokenizer.cs b/src/Http/Routing/src/PathTokenizer.cs index 307dfb1159..79f971e497 100644 --- a/src/Http/Routing/src/PathTokenizer.cs +++ b/src/Http/Routing/src/PathTokenizer.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections; using System.Collections.Generic; diff --git a/src/Http/Routing/src/Patterns/DefaultRoutePatternTransformer.cs b/src/Http/Routing/src/Patterns/DefaultRoutePatternTransformer.cs index 39adf3a4d0..c79946c728 100644 --- a/src/Http/Routing/src/Patterns/DefaultRoutePatternTransformer.cs +++ b/src/Http/Routing/src/Patterns/DefaultRoutePatternTransformer.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; diff --git a/src/Http/Routing/src/Patterns/RouteParameterParser.cs b/src/Http/Routing/src/Patterns/RouteParameterParser.cs index 07c8d91bb9..072ab0d8fc 100644 --- a/src/Http/Routing/src/Patterns/RouteParameterParser.cs +++ b/src/Http/Routing/src/Patterns/RouteParameterParser.cs @@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns var parseResults = ParseConstraints(parameter, currentIndex, endIndex); currentIndex = parseResults.CurrentIndex; - string defaultValue = null; + string? defaultValue = null; if (currentIndex <= endIndex && parameter[currentIndex] == '=') { diff --git a/src/Http/Routing/src/Patterns/RoutePattern.cs b/src/Http/Routing/src/Patterns/RoutePattern.cs index 4cd881c8e2..055a062669 100644 --- a/src/Http/Routing/src/Patterns/RoutePattern.cs +++ b/src/Http/Routing/src/Patterns/RoutePattern.cs @@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// public static readonly object RequiredValueAny = new RequiredValueAnySentinal(); - internal static bool IsRequiredValueAny(object value) + internal static bool IsRequiredValueAny(object? value) { return object.ReferenceEquals(RequiredValueAny, value); } @@ -35,10 +35,10 @@ namespace Microsoft.AspNetCore.Routing.Patterns private const string SeparatorString = "/"; internal RoutePattern( - string rawText, - IReadOnlyDictionary defaults, + string? rawText, + IReadOnlyDictionary defaults, IReadOnlyDictionary> parameterPolicies, - IReadOnlyDictionary requiredValues, + IReadOnlyDictionary requiredValues, IReadOnlyList parameters, IReadOnlyList pathSegments) { @@ -63,7 +63,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// Gets the set of default values for the route pattern. /// The keys of are the route parameter names. /// - public IReadOnlyDictionary Defaults { get; } + public IReadOnlyDictionary Defaults { get; } /// /// Gets the set of parameter policy references for the route pattern. @@ -92,7 +92,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// /// /// - public IReadOnlyDictionary RequiredValues { get; } + public IReadOnlyDictionary RequiredValues { get; } /// /// Gets the precedence value of the route pattern for URL matching. @@ -115,7 +115,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// /// Gets the raw text supplied when parsing the route pattern. May be null. /// - public string RawText { get; } + public string? RawText { get; } /// /// Gets the list of route parameters. @@ -132,7 +132,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// /// The name of the parameter to match. /// The matching parameter or null if no parameter matches the given name. - public RoutePatternParameterPart GetParameter(string name) + public RoutePatternParameterPart? GetParameter(string name) { if (name == null) { diff --git a/src/Http/Routing/src/Patterns/RoutePatternException.cs b/src/Http/Routing/src/Patterns/RoutePatternException.cs index 7b21ac0ac5..c7c95f068c 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternException.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternException.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns private RoutePatternException(SerializationInfo info, StreamingContext context) : base(info, context) { - Pattern = (string)info.GetValue(nameof(Pattern), typeof(string)); + Pattern = (string)info.GetValue(nameof(Pattern), typeof(string))!; } /// diff --git a/src/Http/Routing/src/Patterns/RoutePatternFactory.cs b/src/Http/Routing/src/Patterns/RoutePatternFactory.cs index 91c8ae8b38..8832e94e59 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternFactory.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternFactory.cs @@ -17,8 +17,8 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// public static class RoutePatternFactory { - private static readonly IReadOnlyDictionary EmptyDictionary = - new ReadOnlyDictionary(new Dictionary()); + private static readonly IReadOnlyDictionary EmptyDictionary = + new ReadOnlyDictionary(new Dictionary()); private static readonly IReadOnlyDictionary> EmptyPoliciesDictionary = new ReadOnlyDictionary>(new Dictionary>()); @@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// Multiple policies can be specified for a key by providing a collection as the value. /// /// The . - public static RoutePattern Parse(string pattern, object defaults, object parameterPolicies) + public static RoutePattern Parse(string pattern, object? defaults, object? parameterPolicies) { if (pattern == null) { @@ -86,7 +86,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// Route values that can be substituted for parameters in the route pattern. See remarks on . /// /// The . - public static RoutePattern Parse(string pattern, object defaults, object parameterPolicies, object requiredValues) + public static RoutePattern Parse(string pattern, object? defaults, object? parameterPolicies, object? requiredValues) { if (pattern == null) { @@ -118,7 +118,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The raw text to associate with the route pattern. May be null. /// The collection of segments. /// The . - public static RoutePattern Pattern(string rawText, IEnumerable segments) + public static RoutePattern Pattern(string? rawText, IEnumerable segments) { if (segments == null) { @@ -146,8 +146,8 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The collection of segments. /// The . public static RoutePattern Pattern( - object defaults, - object parameterPolicies, + object? defaults, + object? parameterPolicies, IEnumerable segments) { if (segments == null) @@ -177,9 +177,9 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The collection of segments. /// The . public static RoutePattern Pattern( - string rawText, - object defaults, - object parameterPolicies, + string? rawText, + object? defaults, + object? parameterPolicies, IEnumerable segments) { if (segments == null) @@ -239,8 +239,8 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The collection of segments. /// The . public static RoutePattern Pattern( - object defaults, - object parameterPolicies, + object? defaults, + object? parameterPolicies, params RoutePatternPathSegment[] segments) { if (segments == null) @@ -270,9 +270,9 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The collection of segments. /// The . public static RoutePattern Pattern( - string rawText, - object defaults, - object parameterPolicies, + string? rawText, + object? defaults, + object? parameterPolicies, params RoutePatternPathSegment[] segments) { if (segments == null) @@ -284,10 +284,10 @@ namespace Microsoft.AspNetCore.Routing.Patterns } private static RoutePattern PatternCore( - string rawText, - RouteValueDictionary defaults, - RouteValueDictionary parameterPolicies, - RouteValueDictionary requiredValues, + string? rawText, + RouteValueDictionary? defaults, + RouteValueDictionary? parameterPolicies, + RouteValueDictionary? requiredValues, IEnumerable segments) { // We want to merge the segment data with the 'out of line' defaults and parameter policies. @@ -301,10 +301,10 @@ namespace Microsoft.AspNetCore.Routing.Patterns // It's important that these two views of the data are consistent. We don't want // values specified out of line to have a different behavior. - Dictionary updatedDefaults = null; + Dictionary? updatedDefaults = null; if (defaults != null && defaults.Count > 0) { - updatedDefaults = new Dictionary(defaults.Count, StringComparer.OrdinalIgnoreCase); + updatedDefaults = new Dictionary(defaults.Count, StringComparer.OrdinalIgnoreCase); foreach (var kvp in defaults) { @@ -312,7 +312,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns } } - Dictionary> updatedParameterPolicies = null; + Dictionary>? updatedParameterPolicies = null; if (parameterPolicies != null && parameterPolicies.Count > 0) { updatedParameterPolicies = new Dictionary>(parameterPolicies.Count, StringComparer.OrdinalIgnoreCase); @@ -349,7 +349,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns } } - List parameters = null; + List? parameters = null; var updatedSegments = segments.ToArray(); for (var i = 0; i < updatedSegments.Length; i++) { @@ -420,12 +420,12 @@ namespace Microsoft.AspNetCore.Routing.Patterns ? updatedParameterPolicies.ToDictionary(kvp => kvp.Key, kvp => (IReadOnlyList)kvp.Value.ToArray()) : EmptyPoliciesDictionary, requiredValues ?? EmptyDictionary, - (IReadOnlyList)parameters ?? Array.Empty(), + (IReadOnlyList?)parameters ?? Array.Empty(), updatedSegments); RoutePatternPathSegment VisitSegment(RoutePatternPathSegment segment) { - RoutePatternPart[] updatedParts = null; + RoutePatternPart[]? updatedParts = null; for (var i = 0; i < segment.Parts.Count; i++) { var part = segment.Parts[i]; @@ -482,13 +482,13 @@ namespace Microsoft.AspNetCore.Routing.Patterns { if (updatedDefaults == null) { - updatedDefaults = new Dictionary(StringComparer.OrdinalIgnoreCase); + updatedDefaults = new Dictionary(StringComparer.OrdinalIgnoreCase); } updatedDefaults[parameter.Name] = parameter.Default; } - List parameterConstraints = null; + List? parameterConstraints = null; if ((updatedParameterPolicies == null || !updatedParameterPolicies.TryGetValue(parameter.Name, out parameterConstraints)) && parameter.ParameterPolicies.Count > 0) { @@ -503,7 +503,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns if (parameter.ParameterPolicies.Count > 0) { - parameterConstraints.AddRange(parameter.ParameterPolicies); + parameterConstraints!.AddRange(parameter.ParameterPolicies); } if (Equals(parameter.Default, @default) @@ -667,7 +667,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The . public static RoutePatternParameterPart ParameterPart( string parameterName, - object @default, + object? @default, RoutePatternParameterKind parameterKind) { if (string.IsNullOrEmpty(parameterName)) @@ -703,7 +703,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The . public static RoutePatternParameterPart ParameterPart( string parameterName, - object @default, + object? @default, RoutePatternParameterKind parameterKind, IEnumerable parameterPolicies) { @@ -745,7 +745,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// The . public static RoutePatternParameterPart ParameterPart( string parameterName, - object @default, + object? @default, RoutePatternParameterKind parameterKind, params RoutePatternParameterPolicyReference[] parameterPolicies) { @@ -778,7 +778,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns private static RoutePatternParameterPart ParameterPartCore( string parameterName, - object @default, + object? @default, RoutePatternParameterKind parameterKind, RoutePatternParameterPolicyReference[] parameterPolicies) { @@ -787,7 +787,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns private static RoutePatternParameterPart ParameterPartCore( string parameterName, - object @default, + object? @default, RoutePatternParameterKind parameterKind, RoutePatternParameterPolicyReference[] parameterPolicies, bool encodeSlashes) @@ -906,7 +906,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns return new RoutePatternParameterPolicyReference(parameterPolicy); } - private static RouteValueDictionary Wrap(object values) + private static RouteValueDictionary? Wrap(object? values) { return values == null ? null : new RouteValueDictionary(values); } diff --git a/src/Http/Routing/src/Patterns/RoutePatternMatcher.cs b/src/Http/Routing/src/Patterns/RoutePatternMatcher.cs index 15bc489a64..f82d860e83 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternMatcher.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternMatcher.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Diagnostics; using Microsoft.AspNetCore.Http; diff --git a/src/Http/Routing/src/Patterns/RoutePatternParameterPart.cs b/src/Http/Routing/src/Patterns/RoutePatternParameterPart.cs index 2b5f408268..30cb7db2da 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternParameterPart.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternParameterPart.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; @@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns { internal RoutePatternParameterPart( string parameterName, - object @default, + object? @default, RoutePatternParameterKind parameterKind, RoutePatternParameterPolicyReference[] parameterPolicies) : this(parameterName, @default, parameterKind, parameterPolicies, encodeSlashes: true) @@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns internal RoutePatternParameterPart( string parameterName, - object @default, + object? @default, RoutePatternParameterKind parameterKind, RoutePatternParameterPolicyReference[] parameterPolicies, bool encodeSlashes) @@ -53,7 +53,7 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// /// Gets the default value of this route parameter. May be null. /// - public object Default { get; } + public object? Default { get; } /// /// Returns true if this part is a catch-all parameter. diff --git a/src/Http/Routing/src/Patterns/RoutePatternParameterPolicyReference.cs b/src/Http/Routing/src/Patterns/RoutePatternParameterPolicyReference.cs index 65f58087c1..3fb95983f4 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternParameterPolicyReference.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternParameterPolicyReference.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Diagnostics; @@ -26,16 +26,16 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// /// Gets the constraint text. /// - public string Content { get; } + public string? Content { get; } /// /// Gets a pre-existing that was used to construct this reference. /// - public IParameterPolicy ParameterPolicy { get; } + public IParameterPolicy? ParameterPolicy { get; } - private string DebuggerToString() + private string? DebuggerToString() { return Content; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Patterns/RoutePatternParser.cs b/src/Http/Routing/src/Patterns/RoutePatternParser.cs index 990d1854fc..8b8f181f52 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternParser.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternParser.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Diagnostics; diff --git a/src/Http/Routing/src/Patterns/RoutePatternTransformer.cs b/src/Http/Routing/src/Patterns/RoutePatternTransformer.cs index bea4c610fc..b16ab4cb0e 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternTransformer.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternTransformer.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. namespace Microsoft.AspNetCore.Routing.Patterns @@ -30,6 +30,6 @@ namespace Microsoft.AspNetCore.Routing.Patterns /// return null if any required value cannot be substituted. /// /// - public abstract RoutePattern SubstituteRequiredValues(RoutePattern original, object requiredValues); + public abstract RoutePattern? SubstituteRequiredValues(RoutePattern original, object requiredValues); } } diff --git a/src/Http/Routing/src/RequestDelegateRouteBuilderExtensions.cs b/src/Http/Routing/src/RequestDelegateRouteBuilderExtensions.cs index f376683c4d..8a9e228e46 100644 --- a/src/Http/Routing/src/RequestDelegateRouteBuilderExtensions.cs +++ b/src/Http/Routing/src/RequestDelegateRouteBuilderExtensions.cs @@ -259,7 +259,7 @@ namespace Microsoft.AspNetCore.Routing new RouteHandler(handler), template, defaults: null, - constraints: new RouteValueDictionary(new { httpMethod = new HttpMethodRouteConstraint(verb) }), + constraints: new RouteValueDictionary(new { httpMethod = new HttpMethodRouteConstraint(verb) })!, dataTokens: null, inlineConstraintResolver: GetConstraintResolver(builder)); diff --git a/src/Http/Routing/src/Route.cs b/src/Http/Routing/src/Route.cs index 0a6afd3b26..555c328127 100644 --- a/src/Http/Routing/src/Route.cs +++ b/src/Http/Routing/src/Route.cs @@ -1,8 +1,6 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -#nullable enable - using System; using System.Collections.Generic; using System.Threading.Tasks; @@ -62,7 +60,7 @@ namespace Microsoft.AspNetCore.Routing _target = target; } - public string RouteTemplate => ParsedTemplate.TemplateText; + public string? RouteTemplate => ParsedTemplate.TemplateText; protected override Task OnRouteMatched(RouteContext context) { diff --git a/src/Http/Routing/src/RouteBase.cs b/src/Http/Routing/src/RouteBase.cs index 2ba62fbcab..5c9db8f026 100644 --- a/src/Http/Routing/src/RouteBase.cs +++ b/src/Http/Routing/src/RouteBase.cs @@ -1,8 +1,6 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -#nullable enable - using System; using System.Collections.Generic; using System.Diagnostics; @@ -110,7 +108,7 @@ namespace Microsoft.AspNetCore.Routing { return Task.CompletedTask; } - _logger.RequestMatchedRoute(Name!, ParsedTemplate.TemplateText); + _logger.RequestMatchedRoute(Name!, ParsedTemplate.TemplateText!); return OnRouteMatched(context); } @@ -175,7 +173,7 @@ namespace Microsoft.AspNetCore.Routing RouteTemplate parsedTemplate, IDictionary? constraints) { - var constraintBuilder = new RouteConstraintBuilder(inlineConstraintResolver, parsedTemplate.TemplateText); + var constraintBuilder = new RouteConstraintBuilder(inlineConstraintResolver, parsedTemplate.TemplateText!); if (constraints != null) { @@ -189,12 +187,12 @@ namespace Microsoft.AspNetCore.Routing { if (parameter.IsOptional) { - constraintBuilder.SetOptional(parameter.Name); + constraintBuilder.SetOptional(parameter.Name!); } foreach (var inlineConstraint in parameter.InlineConstraints) { - constraintBuilder.AddResolvedConstraint(parameter.Name, inlineConstraint.Constraint); + constraintBuilder.AddResolvedConstraint(parameter.Name!, inlineConstraint.Constraint); } } @@ -219,7 +217,7 @@ namespace Microsoft.AspNetCore.Routing parameter.Name)); } #else - if (result.ContainsKey(parameter.Name)) + if (result.ContainsKey(parameter.Name!)) { throw new InvalidOperationException( Resources.FormatTemplateRoute_CannotHaveDefaultValueSpecifiedInlineAndExplicitly( @@ -227,7 +225,7 @@ namespace Microsoft.AspNetCore.Routing } else { - result.Add(parameter.Name, parameter.DefaultValue); + result.Add(parameter.Name!, parameter.DefaultValue); } #endif } @@ -300,7 +298,7 @@ namespace Microsoft.AspNetCore.Routing public override string ToString() { - return ParsedTemplate.TemplateText; + return ParsedTemplate.TemplateText!; } } } diff --git a/src/Http/Routing/src/RouteConstraintMatcher.cs b/src/Http/Routing/src/RouteConstraintMatcher.cs index 26728e817a..268e4110cc 100644 --- a/src/Http/Routing/src/RouteConstraintMatcher.cs +++ b/src/Http/Routing/src/RouteConstraintMatcher.cs @@ -53,7 +53,7 @@ namespace Microsoft.AspNetCore.Routing { routeValues.TryGetValue(kvp.Key, out var routeValue); - logger.ConstraintNotMatched(routeValue, kvp.Key, kvp.Value); + logger.ConstraintNotMatched(routeValue!, kvp.Key, kvp.Value); } return false; diff --git a/src/Http/Routing/src/RouteEndpoint.cs b/src/Http/Routing/src/RouteEndpoint.cs index a6750a2ef6..db4f9d4d2b 100644 --- a/src/Http/Routing/src/RouteEndpoint.cs +++ b/src/Http/Routing/src/RouteEndpoint.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -28,8 +28,8 @@ namespace Microsoft.AspNetCore.Routing RequestDelegate requestDelegate, RoutePattern routePattern, int order, - EndpointMetadataCollection metadata, - string displayName) + EndpointMetadataCollection? metadata, + string? displayName) : base(requestDelegate, metadata, displayName) { if (requestDelegate == null) diff --git a/src/Http/Routing/src/RouteEndpointModel.cs b/src/Http/Routing/src/RouteEndpointBuilder.cs similarity index 82% rename from src/Http/Routing/src/RouteEndpointModel.cs rename to src/Http/Routing/src/RouteEndpointBuilder.cs index f06ccba0bf..4397c51cfc 100644 --- a/src/Http/Routing/src/RouteEndpointModel.cs +++ b/src/Http/Routing/src/RouteEndpointBuilder.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing.Patterns; @@ -25,6 +26,11 @@ namespace Microsoft.AspNetCore.Routing public override Endpoint Build() { + if (RequestDelegate is null) + { + throw new InvalidOperationException($"{nameof(RequestDelegate)} must be specified to construct a {nameof(RouteEndpoint)}."); + } + var routeEndpoint = new RouteEndpoint( RequestDelegate, RoutePattern, diff --git a/src/Http/Routing/src/RouteOptions.cs b/src/Http/Routing/src/RouteOptions.cs index dcff5482e7..796554dd58 100644 --- a/src/Http/Routing/src/RouteOptions.cs +++ b/src/Http/Routing/src/RouteOptions.cs @@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Routing public class RouteOptions { private IDictionary _constraintTypeMap = GetDefaultConstraintMap(); - private ICollection _endpointDataSources; + private ICollection _endpointDataSources = default!; /// /// Gets a collection of instances configured with routing. diff --git a/src/Http/Routing/src/RouteValueEqualityComparer.cs b/src/Http/Routing/src/RouteValueEqualityComparer.cs index f7cf0570c9..18ffc3070b 100644 --- a/src/Http/Routing/src/RouteValueEqualityComparer.cs +++ b/src/Http/Routing/src/RouteValueEqualityComparer.cs @@ -18,12 +18,12 @@ namespace Microsoft.AspNetCore.Routing /// /// strings are compared using . /// - public class RouteValueEqualityComparer : IEqualityComparer + public class RouteValueEqualityComparer : IEqualityComparer { public static readonly RouteValueEqualityComparer Default = new RouteValueEqualityComparer(); /// - public new bool Equals(object x, object y) + public new bool Equals(object? x, object? y) { var stringX = x as string ?? Convert.ToString(x, CultureInfo.InvariantCulture); var stringY = y as string ?? Convert.ToString(y, CultureInfo.InvariantCulture); @@ -52,4 +52,4 @@ namespace Microsoft.AspNetCore.Routing } } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/RouteValuesAddressScheme.cs b/src/Http/Routing/src/RouteValuesAddressScheme.cs index 3d0db2b0f9..80a74c19a4 100644 --- a/src/Http/Routing/src/RouteValuesAddressScheme.cs +++ b/src/Http/Routing/src/RouteValuesAddressScheme.cs @@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Routing var state = State; - IList matchResults = null; + IList? matchResults = null; if (string.IsNullOrEmpty(address.RouteName)) { matchResults = state.AllMatchesLinkGenerationTree.GetMatches( @@ -141,8 +141,8 @@ namespace Microsoft.AspNetCore.Routing private OutboundRouteEntry CreateOutboundRouteEntry( RouteEndpoint endpoint, - IReadOnlyDictionary requiredValues, - string routeName) + IReadOnlyDictionary requiredValues, + string? routeName) { var entry = new OutboundRouteEntry() { diff --git a/src/Http/Routing/src/Template/InlineConstraint.cs b/src/Http/Routing/src/Template/InlineConstraint.cs index a711ecb136..71be48e247 100644 --- a/src/Http/Routing/src/Template/InlineConstraint.cs +++ b/src/Http/Routing/src/Template/InlineConstraint.cs @@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Routing.Template throw new ArgumentNullException(nameof(other)); } - Constraint = other.Content; + Constraint = other.Content!; } /// @@ -40,4 +40,4 @@ namespace Microsoft.AspNetCore.Routing.Template /// public string Constraint { get; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Template/RouteTemplate.cs b/src/Http/Routing/src/Template/RouteTemplate.cs index ec5d5631f6..2b699e85cc 100644 --- a/src/Http/Routing/src/Template/RouteTemplate.cs +++ b/src/Http/Routing/src/Template/RouteTemplate.cs @@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Routing.Template } } - public string TemplateText { get; } + public string? TemplateText { get; } public IList Parameters { get; } diff --git a/src/Http/Routing/src/Template/TemplateBinder.cs b/src/Http/Routing/src/Template/TemplateBinder.cs index 10af79ec2c..366a012b58 100644 --- a/src/Http/Routing/src/Template/TemplateBinder.cs +++ b/src/Http/Routing/src/Template/TemplateBinder.cs @@ -1,8 +1,6 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -#nullable enable - using System; using System.Collections; using System.Collections.Generic; diff --git a/src/Http/Routing/src/Template/TemplateMatcher.cs b/src/Http/Routing/src/Template/TemplateMatcher.cs index 97dc3565dd..9587525859 100644 --- a/src/Http/Routing/src/Template/TemplateMatcher.cs +++ b/src/Http/Routing/src/Template/TemplateMatcher.cs @@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Routing.Template continue; } - if (Defaults.TryGetValue(part.Name, out var value)) + if (Defaults.TryGetValue(part.Name!, out var value)) { _hasDefaultValue[i] = true; _defaultValues[i] = value; diff --git a/src/Http/Routing/src/Template/TemplatePart.cs b/src/Http/Routing/src/Template/TemplatePart.cs index 5d84969a9c..c7acbd1b57 100644 --- a/src/Http/Routing/src/Template/TemplatePart.cs +++ b/src/Http/Routing/src/Template/TemplatePart.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Linq; using Microsoft.AspNetCore.Routing.Patterns; @@ -32,7 +33,7 @@ namespace Microsoft.AspNetCore.Routing.Template IsCatchAll = parameter.IsCatchAll; IsOptional = parameter.IsOptional; DefaultValue = parameter.Default; - InlineConstraints = parameter.ParameterPolicies?.Select(p => new InlineConstraint(p)); + InlineConstraints = parameter.ParameterPolicies?.Select(p => new InlineConstraint(p)) ?? Enumerable.Empty(); } else if (other.IsSeparator && other is RoutePatternSeparatorPart separator) { @@ -59,8 +60,8 @@ namespace Microsoft.AspNetCore.Routing.Template string name, bool isCatchAll, bool isOptional, - object defaultValue, - IEnumerable inlineConstraints) + object? defaultValue, + IEnumerable? inlineConstraints) { if (name == null) { @@ -83,12 +84,12 @@ namespace Microsoft.AspNetCore.Routing.Template public bool IsParameter { get; private set; } public bool IsOptional { get; private set; } public bool IsOptionalSeperator { get; set; } - public string Name { get; private set; } - public string Text { get; private set; } - public object DefaultValue { get; private set; } - public IEnumerable InlineConstraints { get; private set; } + public string? Name { get; private set; } + public string? Text { get; private set; } + public object? DefaultValue { get; private set; } + public IEnumerable InlineConstraints { get; private set; } = Enumerable.Empty(); - internal string DebuggerToString() + internal string? DebuggerToString() { if (IsParameter) { @@ -104,11 +105,11 @@ namespace Microsoft.AspNetCore.Routing.Template { if (IsLiteral && IsOptionalSeperator) { - return RoutePatternFactory.SeparatorPart(Text); + return RoutePatternFactory.SeparatorPart(Text!); } else if (IsLiteral) { - return RoutePatternFactory.LiteralPart(Text); + return RoutePatternFactory.LiteralPart(Text!); } else { @@ -119,7 +120,7 @@ namespace Microsoft.AspNetCore.Routing.Template RoutePatternParameterKind.Standard; var constraints = InlineConstraints.Select(c => new RoutePatternParameterPolicyReference(c.Constraint)); - return RoutePatternFactory.ParameterPart(Name, DefaultValue, kind, constraints); + return RoutePatternFactory.ParameterPart(Name!, DefaultValue, kind, constraints); } } } diff --git a/src/Http/Routing/src/Template/TemplateValuesResult.cs b/src/Http/Routing/src/Template/TemplateValuesResult.cs index 2a7c46398f..98489a93a8 100644 --- a/src/Http/Routing/src/Template/TemplateValuesResult.cs +++ b/src/Http/Routing/src/Template/TemplateValuesResult.cs @@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Routing.Template /// /// The set of values that will appear in the URL. /// - public RouteValueDictionary AcceptedValues { get; set; } + public RouteValueDictionary AcceptedValues { get; set; } = default!; /// /// The set of values that that were supplied for URL generation. @@ -24,6 +24,6 @@ namespace Microsoft.AspNetCore.Routing.Template /// Implicit (ambient) values which are invalidated due to changes in values lexically earlier in the /// route template are excluded from this set. /// - public RouteValueDictionary CombinedValues { get; set; } + public RouteValueDictionary CombinedValues { get; set; } = default!; } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Tree/InboundMatch.cs b/src/Http/Routing/src/Tree/InboundMatch.cs index 57f1b6db7b..9ddb321de0 100644 --- a/src/Http/Routing/src/Tree/InboundMatch.cs +++ b/src/Http/Routing/src/Tree/InboundMatch.cs @@ -1,6 +1,8 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System.Diagnostics; using Microsoft.AspNetCore.Routing.Template; diff --git a/src/Http/Routing/src/Tree/InboundRouteEntry.cs b/src/Http/Routing/src/Tree/InboundRouteEntry.cs index 7c4a5f0abc..893a461d1c 100644 --- a/src/Http/Routing/src/Tree/InboundRouteEntry.cs +++ b/src/Http/Routing/src/Tree/InboundRouteEntry.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System.Collections.Generic; using Microsoft.AspNetCore.Routing.Template; diff --git a/src/Http/Routing/src/Tree/LinkGenerationDecisionTree.cs b/src/Http/Routing/src/Tree/LinkGenerationDecisionTree.cs index 6aa8b84867..47db9e345b 100644 --- a/src/Http/Routing/src/Tree/LinkGenerationDecisionTree.cs +++ b/src/Http/Routing/src/Tree/LinkGenerationDecisionTree.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Diagnostics; diff --git a/src/Http/Routing/src/Tree/OutboundMatch.cs b/src/Http/Routing/src/Tree/OutboundMatch.cs index 49980b9912..95653e3bb5 100644 --- a/src/Http/Routing/src/Tree/OutboundMatch.cs +++ b/src/Http/Routing/src/Tree/OutboundMatch.cs @@ -1,6 +1,8 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using Microsoft.AspNetCore.Routing.Template; namespace Microsoft.AspNetCore.Routing.Tree diff --git a/src/Http/Routing/src/Tree/OutboundRouteEntry.cs b/src/Http/Routing/src/Tree/OutboundRouteEntry.cs index 9c5258df1a..4df5ae351a 100644 --- a/src/Http/Routing/src/Tree/OutboundRouteEntry.cs +++ b/src/Http/Routing/src/Tree/OutboundRouteEntry.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System.Collections.Generic; using Microsoft.AspNetCore.Routing.Template; @@ -64,4 +66,4 @@ namespace Microsoft.AspNetCore.Routing.Tree /// public object Data { get; set; } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/src/Tree/TreeEnumerator.cs b/src/Http/Routing/src/Tree/TreeEnumerator.cs index 5a88f5bc35..2f7d3dc94a 100644 --- a/src/Http/Routing/src/Tree/TreeEnumerator.cs +++ b/src/Http/Routing/src/Tree/TreeEnumerator.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System.Collections; using System.Collections.Generic; using System.Diagnostics; diff --git a/src/Http/Routing/src/Tree/TreeRouteBuilder.cs b/src/Http/Routing/src/Tree/TreeRouteBuilder.cs index 59e06d83c0..1f9e9d0313 100644 --- a/src/Http/Routing/src/Tree/TreeRouteBuilder.cs +++ b/src/Http/Routing/src/Tree/TreeRouteBuilder.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Linq; diff --git a/src/Http/Routing/src/Tree/TreeRouter.cs b/src/Http/Routing/src/Tree/TreeRouter.cs index 9dd6eb290b..5a27d237f3 100644 --- a/src/Http/Routing/src/Tree/TreeRouter.cs +++ b/src/Http/Routing/src/Tree/TreeRouter.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Text.Encodings.Web; diff --git a/src/Http/Routing/src/Tree/UrlMatchingNode.cs b/src/Http/Routing/src/Tree/UrlMatchingNode.cs index ffc387efe9..b829bc7036 100644 --- a/src/Http/Routing/src/Tree/UrlMatchingNode.cs +++ b/src/Http/Routing/src/Tree/UrlMatchingNode.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +#nullable disable + using System; using System.Collections.Generic; using System.Diagnostics; diff --git a/src/Http/Routing/src/Tree/UrlMatchingTree.cs b/src/Http/Routing/src/Tree/UrlMatchingTree.cs index 570dce1b3a..3dec2b54bd 100644 --- a/src/Http/Routing/src/Tree/UrlMatchingTree.cs +++ b/src/Http/Routing/src/Tree/UrlMatchingTree.cs @@ -158,7 +158,7 @@ namespace Microsoft.AspNetCore.Routing.Tree current.Matches.Sort((x, y) => { var result = x.Entry.Precedence.CompareTo(y.Entry.Precedence); - return result == 0 ? x.Entry.RouteTemplate.TemplateText.CompareTo(y.Entry.RouteTemplate.TemplateText) : result; + return result == 0 ? x.Entry.RouteTemplate.TemplateText!.CompareTo(y.Entry.RouteTemplate.TemplateText) : result; }); } From e893ef59e8e54cf990afcfd6400cffc1b4a618b0 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Mon, 27 Jul 2020 21:33:58 +0430 Subject: [PATCH 62/75] [Routing] Move to GenericHost (#24281) --- .../EndpointRoutingBenchmarkTest.cs | 19 +- .../Benchmarks/RouterBenchmarkTest.cs | 20 +- .../EndpointRoutingIntegrationTest.cs | 301 +++++++++++------- .../EndpointRoutingSampleTest.cs | 11 +- .../test/FunctionalTests/RouterSampleTest.cs | 9 +- .../FunctionalTests/RoutingTestFixture.cs | 15 +- .../WebHostBuilderExtensionsTest.cs | 24 +- .../testassets/Benchmarks/Benchmarks.csproj | 1 + .../test/testassets/Benchmarks/Program.cs | 44 ++- .../test/testassets/RoutingSandbox/Program.cs | 27 +- .../RoutingSandbox/RoutingSandbox.csproj | 1 + .../test/testassets/RoutingWebSite/Program.cs | 30 +- .../RoutingWebSite/RoutingWebSite.csproj | 1 + 13 files changed, 329 insertions(+), 174 deletions(-) diff --git a/src/Http/Routing/test/FunctionalTests/Benchmarks/EndpointRoutingBenchmarkTest.cs b/src/Http/Routing/test/FunctionalTests/Benchmarks/EndpointRoutingBenchmarkTest.cs index b40da83fc9..003db4f95f 100644 --- a/src/Http/Routing/test/FunctionalTests/Benchmarks/EndpointRoutingBenchmarkTest.cs +++ b/src/Http/Routing/test/FunctionalTests/Benchmarks/EndpointRoutingBenchmarkTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -6,6 +6,9 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Xunit; namespace Microsoft.AspNetCore.Routing.FunctionalTests @@ -13,19 +16,24 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public class EndpointRoutingBenchmarkTest : IDisposable { private readonly HttpClient _client; + private readonly IHost _host; private readonly TestServer _testServer; public EndpointRoutingBenchmarkTest() { // This switch and value are set by benchmark server when running the app for profiling. var args = new[] { "--scenarios", "PlaintextEndpointRouting" }; - var webHostBuilder = Benchmarks.Program.GetWebHostBuilder(args); + var hostBuilder = Benchmarks.Program.GetHostBuilder(args); + + _host = hostBuilder.Build(); // Make sure we are using the right startup - var startupName = webHostBuilder.GetSetting("Startup"); - Assert.Equal(nameof(Benchmarks.StartupUsingEndpointRouting), startupName); + var configuration = _host.Services.GetService(); + var startupName = configuration["Startup"]; + Assert.Equal(nameof(Benchmarks.StartupUsingEndpointRouting), startupName); - _testServer = new TestServer(webHostBuilder); + _testServer = _host.GetTestServer(); + _host.Start(); _client = _testServer.CreateClient(); _client.BaseAddress = new Uri("http://localhost"); } @@ -53,6 +61,7 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests { _testServer.Dispose(); _client.Dispose(); + _host.Dispose(); } } } diff --git a/src/Http/Routing/test/FunctionalTests/Benchmarks/RouterBenchmarkTest.cs b/src/Http/Routing/test/FunctionalTests/Benchmarks/RouterBenchmarkTest.cs index aecbaaab8c..ccd11a551a 100644 --- a/src/Http/Routing/test/FunctionalTests/Benchmarks/RouterBenchmarkTest.cs +++ b/src/Http/Routing/test/FunctionalTests/Benchmarks/RouterBenchmarkTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -6,6 +6,10 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.TestHost; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Xunit; namespace Microsoft.AspNetCore.Routing.FunctionalTests @@ -13,19 +17,24 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public class RouterBenchmarkTest : IDisposable { private readonly HttpClient _client; + private readonly IHost _host; private readonly TestServer _testServer; public RouterBenchmarkTest() { // This switch and value are set by benchmark server when running the app for profiling. var args = new[] { "--scenarios", "PlaintextRouting" }; - var webHostBuilder = Benchmarks.Program.GetWebHostBuilder(args); + var hostBuilder = Benchmarks.Program.GetHostBuilder(args); + + _host = hostBuilder.Build(); // Make sure we are using the right startup - var startupName = webHostBuilder.GetSetting("Startup"); + var configuration = _host.Services.GetService(); + var startupName = configuration["Startup"]; Assert.Equal(nameof(Benchmarks.StartupUsingRouter), startupName); - _testServer = new TestServer(webHostBuilder); + _testServer = _host.GetTestServer(); + _host.Start(); _client = _testServer.CreateClient(); _client.BaseAddress = new Uri("http://localhost"); } @@ -53,6 +62,7 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests { _testServer.Dispose(); _client.Dispose(); + _host.Dispose(); } } -} \ No newline at end of file +} diff --git a/src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs b/src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs index f0fa4a4f59..860ebac133 100644 --- a/src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs +++ b/src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Xunit; namespace Microsoft.AspNetCore.Routing.FunctionalTests @@ -31,20 +32,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task AuthorizationMiddleware_WhenNoAuthMetadataIsConfigured() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseRouting(); - app.UseAuthorization(); - app.UseEndpoints(b => b.Map("/", TestDelegate)); - }) - .ConfigureServices(services => - { - services.AddAuthorization(); - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseRouting(); + app.UseAuthorization(); + app.UseEndpoints(b => b.Map("/", TestDelegate)); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddAuthorization(); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var response = await server.CreateRequest("/").SendAsync("GET"); @@ -55,20 +64,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task AuthorizationMiddleware_WhenEndpointIsNotFound() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseRouting(); - app.UseAuthorization(); - app.UseEndpoints(b => b.Map("/", TestDelegate)); - }) - .ConfigureServices(services => - { - services.AddAuthorization(); - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseRouting(); + app.UseAuthorization(); + app.UseEndpoints(b => b.Map("/", TestDelegate)); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddAuthorization(); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var response = await server.CreateRequest("/not-found").SendAsync("GET"); @@ -79,20 +96,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task AuthorizationMiddleware_WithAuthorizedEndpoint() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseRouting(); - app.UseAuthorization(); - app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); - }) - .ConfigureServices(services => - { - services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseRouting(); + app.UseAuthorization(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var response = await server.CreateRequest("/").SendAsync("GET"); @@ -103,20 +128,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task AuthorizationMiddleware_NotConfigured_Throws() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseRouting(); - app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); - }) - .ConfigureServices(services => - { - services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); - services.AddRouting(); - }); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); Assert.Equal(AuthErrorMessage, ex.Message); @@ -126,18 +159,26 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task AuthorizationMiddleware_NotConfigured_WhenEndpointIsNotFound() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseRouting(); - app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); - }) - .ConfigureServices(services => - { - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var response = await server.CreateRequest("/not-found").SendAsync("GET"); @@ -148,20 +189,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task AuthorizationMiddleware_ConfiguredBeforeRouting_Throws() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseAuthorization(); - app.UseRouting(); - app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); - }) - .ConfigureServices(services => - { - services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseAuthorization(); + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); Assert.Equal(AuthErrorMessage, ex.Message); @@ -171,20 +220,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task AuthorizationMiddleware_ConfiguredAfterRouting_Throws() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseRouting(); - app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); - app.UseAuthorization(); - }) - .ConfigureServices(services => - { - services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + app.UseAuthorization(); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); Assert.Equal(AuthErrorMessage, ex.Message); @@ -194,20 +251,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task CorsMiddleware_WithCorsEndpoint() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseRouting(); - app.UseCors(); - app.UseEndpoints(b => b.Map("/", TestDelegate).RequireCors(policy => policy.AllowAnyOrigin())); - }) - .ConfigureServices(services => - { - services.AddCors(); - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseRouting(); + app.UseCors(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireCors(policy => policy.AllowAnyOrigin())); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddCors(); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var response = await server.CreateRequest("/").SendAsync("PUT"); @@ -218,20 +283,28 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task CorsMiddleware_ConfiguredBeforeRouting_Throws() { // Arrange - var builder = new WebHostBuilder(); - builder.Configure(app => - { - app.UseCors(); - app.UseRouting(); - app.UseEndpoints(b => b.Map("/", TestDelegate).RequireCors(policy => policy.AllowAnyOrigin())); - }) - .ConfigureServices(services => - { - services.AddCors(); - services.AddRouting(); - }); + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseCors(); + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireCors(policy => policy.AllowAnyOrigin())); + }) + .UseTestServer(); + }) + .ConfigureServices(services => + { + services.AddCors(); + services.AddRouting(); + }) + .Build(); - using var server = new TestServer(builder); + using var server = host.GetTestServer(); + + await host.StartAsync(); var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); Assert.Equal(CORSErrorMessage, ex.Message); diff --git a/src/Http/Routing/test/FunctionalTests/EndpointRoutingSampleTest.cs b/src/Http/Routing/test/FunctionalTests/EndpointRoutingSampleTest.cs index e5ad2bd10a..aa575ab084 100644 --- a/src/Http/Routing/test/FunctionalTests/EndpointRoutingSampleTest.cs +++ b/src/Http/Routing/test/FunctionalTests/EndpointRoutingSampleTest.cs @@ -6,6 +6,7 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.Hosting; using RoutingWebSite; using Xunit; @@ -14,12 +15,17 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public class EndpointRoutingSampleTest : IDisposable { private readonly HttpClient _client; + private readonly IHost _host; private readonly TestServer _testServer; public EndpointRoutingSampleTest() { - var webHostBuilder = Program.GetWebHostBuilder(new[] { Program.EndpointRoutingScenario, }); - _testServer = new TestServer(webHostBuilder); + var hostBuilder = Program.GetHostBuilder(new[] { Program.EndpointRoutingScenario, }); + _host = hostBuilder.Build(); + + _testServer = _host.GetTestServer(); + _host.Start(); + _client = _testServer.CreateClient(); _client.BaseAddress = new Uri("http://localhost"); } @@ -227,6 +233,7 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests { _testServer.Dispose(); _client.Dispose(); + _host.Dispose(); } } } diff --git a/src/Http/Routing/test/FunctionalTests/RouterSampleTest.cs b/src/Http/Routing/test/FunctionalTests/RouterSampleTest.cs index 9388a03781..d0b93a8965 100644 --- a/src/Http/Routing/test/FunctionalTests/RouterSampleTest.cs +++ b/src/Http/Routing/test/FunctionalTests/RouterSampleTest.cs @@ -6,6 +6,7 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.Hosting; using RoutingWebSite; using Xunit; @@ -14,12 +15,15 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public class RouterSampleTest : IDisposable { private readonly HttpClient _client; + private readonly IHost _host; private readonly TestServer _testServer; public RouterSampleTest() { - var webHostBuilder = Program.GetWebHostBuilder(new[] { Program.RouterScenario, }); - _testServer = new TestServer(webHostBuilder); + var hostBuilder = Program.GetHostBuilder(new[] { Program.RouterScenario, }); + _host = hostBuilder.Build(); + _testServer = _host.GetTestServer(); + _host.Start(); _client = _testServer.CreateClient(); _client.BaseAddress = new Uri("http://localhost"); } @@ -96,6 +100,7 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests { _testServer.Dispose(); _client.Dispose(); + _host.Dispose(); } } } diff --git a/src/Http/Routing/test/FunctionalTests/RoutingTestFixture.cs b/src/Http/Routing/test/FunctionalTests/RoutingTestFixture.cs index 51c9bc8c5a..c0c97347f3 100644 --- a/src/Http/Routing/test/FunctionalTests/RoutingTestFixture.cs +++ b/src/Http/Routing/test/FunctionalTests/RoutingTestFixture.cs @@ -5,6 +5,7 @@ using System; using System.Net.Http; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.Hosting; namespace Microsoft.AspNetCore.Routing.FunctionalTests { @@ -14,10 +15,18 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public RoutingTestFixture() { - var builder = new WebHostBuilder() - .UseStartup(typeof(TStartup)); + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseStartup(typeof(TStartup)) + .UseTestServer(); + }) + .Build(); - _server = new TestServer(builder); + _server = host.GetTestServer(); + + host.Start(); Client = _server.CreateClient(); Client.BaseAddress = new Uri("http://localhost"); diff --git a/src/Http/Routing/test/FunctionalTests/WebHostBuilderExtensionsTest.cs b/src/Http/Routing/test/FunctionalTests/WebHostBuilderExtensionsTest.cs index 7466006026..59373e2594 100644 --- a/src/Http/Routing/test/FunctionalTests/WebHostBuilderExtensionsTest.cs +++ b/src/Http/Routing/test/FunctionalTests/WebHostBuilderExtensionsTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; using Xunit; +using Microsoft.Extensions.Hosting; namespace Microsoft.AspNetCore.Routing.FunctionalTests { @@ -79,14 +80,21 @@ namespace Microsoft.AspNetCore.Routing.FunctionalTests public async Task UseRouter_MapGet_MatchesRequest(Action routeBuilder, HttpRequestMessage request, string expected) { // Arrange - var webhostbuilder = new WebHostBuilder(); - webhostbuilder - .ConfigureServices(services => services.AddRouting()) - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webhostbuilder => { - app.UseRouter(routeBuilder); - }); - var testServer = new TestServer(webhostbuilder); + webhostbuilder + .Configure(app => + { + app.UseRouter(routeBuilder); + }) + .UseTestServer(); + }) + .ConfigureServices(services => services.AddRouting()) + .Build(); + + var testServer = host.GetTestServer(); + await host.StartAsync(); var client = testServer.CreateClient(); // Act diff --git a/src/Http/Routing/test/testassets/Benchmarks/Benchmarks.csproj b/src/Http/Routing/test/testassets/Benchmarks/Benchmarks.csproj index 8bab94164f..6f70f9b391 100644 --- a/src/Http/Routing/test/testassets/Benchmarks/Benchmarks.csproj +++ b/src/Http/Routing/test/testassets/Benchmarks/Benchmarks.csproj @@ -8,6 +8,7 @@ + diff --git a/src/Http/Routing/test/testassets/Benchmarks/Program.cs b/src/Http/Routing/test/testassets/Benchmarks/Program.cs index 4e832df4a2..b4b29acb03 100644 --- a/src/Http/Routing/test/testassets/Benchmarks/Program.cs +++ b/src/Http/Routing/test/testassets/Benchmarks/Program.cs @@ -1,20 +1,23 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; namespace Benchmarks { public class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - GetWebHostBuilder(args).Build().Run(); + return GetHostBuilder(args).Build().RunAsync(); } - public static IWebHostBuilder GetWebHostBuilder(string[] args) + public static IHostBuilder GetHostBuilder(string[] args) { var config = new ConfigurationBuilder() .AddCommandLine(args) @@ -24,22 +27,35 @@ namespace Benchmarks // Consoler logger has a major impact on perf results, so do not use // default builder. - var webHostBuilder = new WebHostBuilder() - .UseConfiguration(config) - .UseKestrel(); + var hostBuilder = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseTestServer() + .UseConfiguration(config); + }); var scenario = config["scenarios"]?.ToLower(); if (scenario == "plaintextdispatcher" || scenario == "plaintextendpointrouting") { - webHostBuilder.UseStartup(); - // for testing - webHostBuilder.UseSetting("Startup", nameof(StartupUsingEndpointRouting)); + hostBuilder.ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseStartup() + // for testing + .UseSetting("Startup", nameof(StartupUsingEndpointRouting)); + }); } else if (scenario == "plaintextrouting" || scenario == "plaintextrouter") { - webHostBuilder.UseStartup(); - // for testing - webHostBuilder.UseSetting("Startup", nameof(StartupUsingRouter)); + hostBuilder.ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseStartup() + // for testing + .UseSetting("Startup", nameof(StartupUsingRouter)); + }); } else { @@ -47,7 +63,7 @@ namespace Benchmarks $"Invalid scenario '{scenario}'. Allowed scenarios are PlaintextEndpointRouting and PlaintextRouter"); } - return webHostBuilder; + return hostBuilder; } } } diff --git a/src/Http/Routing/test/testassets/RoutingSandbox/Program.cs b/src/Http/Routing/test/testassets/RoutingSandbox/Program.cs index 4f2d60bc76..edcc062745 100644 --- a/src/Http/Routing/test/testassets/RoutingSandbox/Program.cs +++ b/src/Http/Routing/test/testassets/RoutingSandbox/Program.cs @@ -2,8 +2,11 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace RoutingSandbox @@ -13,14 +16,14 @@ namespace RoutingSandbox public const string EndpointRoutingScenario = "endpointrouting"; public const string RouterScenario = "router"; - public static void Main(string[] args) + public static Task Main(string[] args) { - var webHost = GetWebHostBuilder(args).Build(); - webHost.Run(); + var host = GetHostBuilder(args).Build(); + return host.RunAsync(); } // For unit testing - public static IWebHostBuilder GetWebHostBuilder(string[] args) + public static IHostBuilder GetHostBuilder(string[] args) { string scenario; if (args.Length == 0) @@ -57,16 +60,20 @@ namespace RoutingSandbox } - return new WebHostBuilder() - .UseKestrel() - .UseIISIntegration() + return new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseIISIntegration() + .UseContentRoot(Environment.CurrentDirectory) + .UseStartup(startupType); + }) .ConfigureLogging(b => { b.AddConsole(); b.SetMinimumLevel(LogLevel.Critical); - }) - .UseContentRoot(Environment.CurrentDirectory) - .UseStartup(startupType); + }); } } } diff --git a/src/Http/Routing/test/testassets/RoutingSandbox/RoutingSandbox.csproj b/src/Http/Routing/test/testassets/RoutingSandbox/RoutingSandbox.csproj index 873236404f..554514e46f 100644 --- a/src/Http/Routing/test/testassets/RoutingSandbox/RoutingSandbox.csproj +++ b/src/Http/Routing/test/testassets/RoutingSandbox/RoutingSandbox.csproj @@ -5,6 +5,7 @@ + diff --git a/src/Http/Routing/test/testassets/RoutingWebSite/Program.cs b/src/Http/Routing/test/testassets/RoutingWebSite/Program.cs index d96af1814f..3727c9a9a8 100644 --- a/src/Http/Routing/test/testassets/RoutingWebSite/Program.cs +++ b/src/Http/Routing/test/testassets/RoutingWebSite/Program.cs @@ -1,9 +1,12 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace RoutingWebSite @@ -13,14 +16,14 @@ namespace RoutingWebSite public const string EndpointRoutingScenario = "endpointrouting"; public const string RouterScenario = "router"; - public static void Main(string[] args) + public static Task Main(string[] args) { - var webHost = GetWebHostBuilder(args).Build(); - webHost.Run(); + var host = GetHostBuilder(args).Build(); + return host.RunAsync(); } // For unit testing - public static IWebHostBuilder GetWebHostBuilder(string[] args) + public static IHostBuilder GetHostBuilder(string[] args) { string scenario; if (args.Length == 0) @@ -57,16 +60,21 @@ namespace RoutingWebSite } - return new WebHostBuilder() - .UseKestrel() - .UseIISIntegration() + return new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseIISIntegration() + .UseContentRoot(Environment.CurrentDirectory) + .UseStartup(startupType) + .UseTestServer(); + }) .ConfigureLogging(b => { b.AddConsole(); b.SetMinimumLevel(LogLevel.Critical); - }) - .UseContentRoot(Environment.CurrentDirectory) - .UseStartup(startupType); + }); } } } diff --git a/src/Http/Routing/test/testassets/RoutingWebSite/RoutingWebSite.csproj b/src/Http/Routing/test/testassets/RoutingWebSite/RoutingWebSite.csproj index 873236404f..554514e46f 100644 --- a/src/Http/Routing/test/testassets/RoutingWebSite/RoutingWebSite.csproj +++ b/src/Http/Routing/test/testassets/RoutingWebSite/RoutingWebSite.csproj @@ -5,6 +5,7 @@ + From 60971450960d8ebc29636cee98533cc677ef1c2d Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Tue, 28 Jul 2020 00:39:15 +0430 Subject: [PATCH 63/75] [Security] Move to GenericHost (#24282) --- .../samples/Certificate.Sample/Program.cs | 34 +-- .../Cookies/samples/CookieSample/Program.cs | 22 +- .../samples/CookieSessionSample/Program.cs | 22 +- .../samples/JwtBearerSample/Program.cs | 14 +- .../OpenIdConnect.AzureAdSample/Program.cs | 15 +- .../samples/OpenIdConnectSample/Program.cs | 15 +- .../samples/WsFedSample/Program.cs | 40 +-- .../OpenIdConnectConfigurationTests.cs | 33 ++- .../Authentication/test/PolicyTests.cs | 56 ++-- .../samples/CookiePolicySample/Program.cs | 22 +- .../CookiePolicy/test/CookieConsentTests.cs | 29 ++- .../CookiePolicy/test/CookiePolicyTests.cs | 244 +++++++++++------- 12 files changed, 335 insertions(+), 211 deletions(-) diff --git a/src/Security/Authentication/Certificate/samples/Certificate.Sample/Program.cs b/src/Security/Authentication/Certificate/samples/Certificate.Sample/Program.cs index 1c4a2d2958..c5077427d7 100644 --- a/src/Security/Authentication/Certificate/samples/Certificate.Sample/Program.cs +++ b/src/Security/Authentication/Certificate/samples/Certificate.Sample/Program.cs @@ -1,26 +1,30 @@ -using Microsoft.AspNetCore; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Server.Kestrel.Https; +using Microsoft.Extensions.Hosting; namespace Certificate.Sample { public class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - BuildWebHost(args).Run(); - } - - public static IWebHost BuildWebHost(string[] args) - => WebHost.CreateDefaultBuilder(args) - .UseStartup() - .ConfigureKestrel(options => - { - options.ConfigureHttpsDefaults(opt => + var host = Host.CreateDefaultBuilder(args) + .ConfigureWebHost(webHostBuilder => { - opt.ClientCertificateMode = ClientCertificateMode.RequireCertificate; - }); - }) - .Build(); + webHostBuilder + .UseStartup() + .ConfigureKestrel(options => + { + options.ConfigureHttpsDefaults(opt => + { + opt.ClientCertificateMode = ClientCertificateMode.RequireCertificate; + }); + }); + }) + .Build(); + + return host.RunAsync(); + } } } diff --git a/src/Security/Authentication/Cookies/samples/CookieSample/Program.cs b/src/Security/Authentication/Cookies/samples/CookieSample/Program.cs index 3f40d3194b..7cd8884876 100644 --- a/src/Security/Authentication/Cookies/samples/CookieSample/Program.cs +++ b/src/Security/Authentication/Cookies/samples/CookieSample/Program.cs @@ -1,26 +1,32 @@ -using System.IO; +using System.IO; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace CookieSample { public static class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseStartup(); + }) .ConfigureLogging(factory => { factory.AddConsole(); factory.AddFilter("Console", level => level >= LogLevel.Information); }) - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() - .UseStartup() .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Security/Authentication/Cookies/samples/CookieSessionSample/Program.cs b/src/Security/Authentication/Cookies/samples/CookieSessionSample/Program.cs index 1a19850e64..298b809ca1 100644 --- a/src/Security/Authentication/Cookies/samples/CookieSessionSample/Program.cs +++ b/src/Security/Authentication/Cookies/samples/CookieSessionSample/Program.cs @@ -1,26 +1,32 @@ -using System.IO; +using System.IO; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace CookieSessionSample { public static class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseStartup(); + }) .ConfigureLogging(factory => { factory.AddConsole(); factory.AddFilter("Console", level => level >= LogLevel.Information); }) - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() - .UseStartup() .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Security/Authentication/JwtBearer/samples/JwtBearerSample/Program.cs b/src/Security/Authentication/JwtBearer/samples/JwtBearerSample/Program.cs index 348d6c560c..a0dec58e23 100644 --- a/src/Security/Authentication/JwtBearer/samples/JwtBearerSample/Program.cs +++ b/src/Security/Authentication/JwtBearer/samples/JwtBearerSample/Program.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; @@ -6,13 +6,17 @@ namespace JwtBearerSample { public static class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = WebHost.CreateDefaultBuilder(args) - .UseStartup() + var host = Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webHostBuilder => + { + webHostBuilder + .UseStartup(); + }) .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnect.AzureAdSample/Program.cs b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnect.AzureAdSample/Program.cs index 077f415dfb..1ec249d54e 100644 --- a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnect.AzureAdSample/Program.cs +++ b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnect.AzureAdSample/Program.cs @@ -1,17 +1,22 @@ -using Microsoft.AspNetCore; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; namespace OpenIdConnect.AzureAdSample { public static class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = WebHost.CreateDefaultBuilder(args) - .UseStartup() + var host = Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webHostBuilder => + { + webHostBuilder + .UseStartup(); + }) .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Program.cs b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Program.cs index aace6e77ea..34f1798fa3 100644 --- a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Program.cs +++ b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Program.cs @@ -1,18 +1,23 @@ -using Microsoft.AspNetCore; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; namespace OpenIdConnectSample { public static class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = WebHost.CreateDefaultBuilder(args) - .UseStartup() + var host = Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webHostBuilder => + { + webHostBuilder + .UseStartup(); + }) .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Security/Authentication/WsFederation/samples/WsFedSample/Program.cs b/src/Security/Authentication/WsFederation/samples/WsFedSample/Program.cs index 40e1945c69..b53b5ab65b 100644 --- a/src/Security/Authentication/WsFederation/samples/WsFedSample/Program.cs +++ b/src/Security/Authentication/WsFederation/samples/WsFedSample/Program.cs @@ -1,24 +1,36 @@ -using System; -using System.Collections.Generic; using System.IO; -using System.Linq; using System.Net; using System.Reflection; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; -using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace WsFedSample { public class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel(options => + { + options.Listen(IPAddress.Loopback, 44307, listenOptions => + { + // Configure SSL + var serverCertificate = LoadCertificate(); + listenOptions.UseHttps(serverCertificate); + }); + }) + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseStartup(); + }) .ConfigureLogging(factory => { factory.AddConsole(); @@ -26,21 +38,9 @@ namespace WsFedSample factory.AddFilter("Console", level => level >= LogLevel.Information); factory.AddFilter("Debug", level => level >= LogLevel.Information); }) - .UseKestrel(options => - { - options.Listen(IPAddress.Loopback, 44307, listenOptions => - { - // Configure SSL - var serverCertificate = LoadCertificate(); - listenOptions.UseHttps(serverCertificate); - }); - }) - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() - .UseStartup() .Build(); - host.Run(); + return host.RunAsync(); } private static X509Certificate2 LoadCertificate() diff --git a/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectConfigurationTests.cs b/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectConfigurationTests.cs index af15948874..b18fc70439 100644 --- a/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectConfigurationTests.cs +++ b/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectConfigurationTests.cs @@ -437,7 +437,22 @@ namespace Microsoft.AspNetCore.Authentication.Test.OpenIdConnect [Fact] public async Task MetadataAddressIsGeneratedFromAuthorityWhenMissing() { - var builder = new WebHostBuilder() + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseAuthentication(); + app.Run(async context => + { + var resolver = context.RequestServices.GetRequiredService(); + var handler = await resolver.GetHandlerAsync(context, OpenIdConnectDefaults.AuthenticationScheme) as OpenIdConnectHandler; + Assert.Equal($"{TestServerBuilder.DefaultAuthority}/.well-known/openid-configuration", handler.Options.MetadataAddress); + }); + }) + .UseTestServer(); + }) .ConfigureServices(services => { services.AddAuthentication() @@ -449,17 +464,11 @@ namespace Microsoft.AspNetCore.Authentication.Test.OpenIdConnect o.SignInScheme = Guid.NewGuid().ToString(); }); }) - .Configure(app => - { - app.UseAuthentication(); - app.Run(async context => - { - var resolver = context.RequestServices.GetRequiredService(); - var handler = await resolver.GetHandlerAsync(context, OpenIdConnectDefaults.AuthenticationScheme) as OpenIdConnectHandler; - Assert.Equal($"{TestServerBuilder.DefaultAuthority}/.well-known/openid-configuration", handler.Options.MetadataAddress); - }); - }); - var server = new TestServer(builder); + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var transaction = await server.SendAsync(@"https://example.com"); Assert.Equal(HttpStatusCode.OK, transaction.Response.StatusCode); } diff --git a/src/Security/Authentication/test/PolicyTests.cs b/src/Security/Authentication/test/PolicyTests.cs index 77d764e14b..5049635b1a 100644 --- a/src/Security/Authentication/test/PolicyTests.cs +++ b/src/Security/Authentication/test/PolicyTests.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Xunit; namespace Microsoft.AspNetCore.Authentication @@ -17,7 +18,7 @@ namespace Microsoft.AspNetCore.Authentication [Fact] public async Task CanDispatch() { - var server = CreateServer(services => + using var server = await CreateServer(services => { services.AddLogging().AddAuthentication(o => { @@ -333,7 +334,7 @@ namespace Microsoft.AspNetCore.Authentication [Fact] public async Task CanDynamicTargetBasedOnQueryString() { - var server = CreateServer(services => + using var server = await CreateServer(services => { services.AddAuthentication(o => { @@ -455,33 +456,44 @@ namespace Microsoft.AspNetCore.Authentication } } - private static TestServer CreateServer(Action configure = null, string defaultScheme = null) + private static async Task CreateServer(Action configure = null, string defaultScheme = null) { - var builder = new WebHostBuilder() - .Configure(app => + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.UseAuthentication(); - app.Use(async (context, next) => - { - var req = context.Request; - var res = context.Response; - if (req.Path.StartsWithSegments(new PathString("/auth"), out var remainder)) + webHostBuilder + .Configure(app => { - var name = (remainder.Value.Length > 0) ? remainder.Value.Substring(1) : null; - var result = await context.AuthenticateAsync(name); - await res.DescribeAsync(result?.Ticket?.Principal); - } - else - { - await next(); - } - }); + app.UseAuthentication(); + app.Use(async (context, next) => + { + var req = context.Request; + var res = context.Response; + if (req.Path.StartsWithSegments(new PathString("/auth"), out var remainder)) + { + var name = (remainder.Value.Length > 0) ? remainder.Value.Substring(1) : null; + var result = await context.AuthenticateAsync(name); + await res.DescribeAsync(result?.Ticket?.Principal); + } + else + { + await next(); + } + }); + }) + .UseTestServer(); }) .ConfigureServices(services => { configure?.Invoke(services); - }); - return new TestServer(builder); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); + + return server; } } } diff --git a/src/Security/CookiePolicy/samples/CookiePolicySample/Program.cs b/src/Security/CookiePolicy/samples/CookiePolicySample/Program.cs index 3fc09a3db2..14c40d95be 100644 --- a/src/Security/CookiePolicy/samples/CookiePolicySample/Program.cs +++ b/src/Security/CookiePolicy/samples/CookiePolicySample/Program.cs @@ -1,26 +1,32 @@ -using System.IO; +using System.IO; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace CookiePolicySample { public static class Program { - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseStartup(); + }) .ConfigureLogging(factory => { factory.AddConsole(); factory.AddFilter("Microsoft", LogLevel.Trace); }) - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() - .UseStartup() .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Security/CookiePolicy/test/CookieConsentTests.cs b/src/Security/CookiePolicy/test/CookieConsentTests.cs index cda7e7d93c..6980935d54 100644 --- a/src/Security/CookiePolicy/test/CookieConsentTests.cs +++ b/src/Security/CookiePolicy/test/CookieConsentTests.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Net.Http.Headers; using Xunit; @@ -641,20 +642,30 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test Assert.NotNull(manualCookie.Expires); // Expires may not exactly match to the second. } - private Task RunTestAsync(Action configureOptions, Action configureRequest, RequestDelegate handleRequest) + private async Task RunTestAsync(Action configureOptions, Action configureRequest, RequestDelegate handleRequest) { - var builder = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseCookiePolicy(); + app.Run(handleRequest); + }) + .UseTestServer(); + }) .ConfigureServices(services => { services.Configure(configureOptions); }) - .Configure(app => - { - app.UseCookiePolicy(); - app.Run(handleRequest); - }); - var server = new TestServer(builder); - return server.SendAsync(configureRequest); + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); + + return await server.SendAsync(configureRequest); } } } diff --git a/src/Security/CookiePolicy/test/CookiePolicyTests.cs b/src/Security/CookiePolicy/test/CookiePolicyTests.cs index 783c29e4e0..6f5c940c7d 100644 --- a/src/Security/CookiePolicy/test/CookiePolicyTests.cs +++ b/src/Security/CookiePolicy/test/CookiePolicyTests.cs @@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Net.Http.Headers; using Xunit; @@ -244,23 +245,32 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test [Fact] public async Task CookiePolicyCanHijackAppend() { - var builder = new WebHostBuilder() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.UseCookiePolicy(new CookiePolicyOptions - { - OnAppendCookie = ctx => ctx.CookieName = ctx.CookieValue = "Hao" - }); - app.Run(context => - { - context.Response.Cookies.Append("A", "A"); - context.Response.Cookies.Append("B", "B", new CookieOptions { Secure = false }); - context.Response.Cookies.Append("C", "C", new CookieOptions() { SameSite = Http.SameSiteMode.Strict }); - context.Response.Cookies.Append("D", "D", new CookieOptions { Secure = true }); - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + webHostBuilder + .Configure(app => + { + app.UseCookiePolicy(new CookiePolicyOptions + { + OnAppendCookie = ctx => ctx.CookieName = ctx.CookieValue = "Hao" + }); + app.Run(context => + { + context.Response.Cookies.Append("A", "A"); + context.Response.Cookies.Append("B", "B", new CookieOptions { Secure = false }); + context.Response.Cookies.Append("C", "C", new CookieOptions() { SameSite = Http.SameSiteMode.Strict }); + context.Response.Cookies.Append("D", "D", new CookieOptions { Secure = true }); + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var transaction = await server.SendAsync("http://example.com/login"); @@ -274,23 +284,32 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test [Fact] public async Task CookiePolicyCanHijackDelete() { - var builder = new WebHostBuilder() - .Configure(app => - { - app.UseCookiePolicy(new CookiePolicyOptions + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - OnDeleteCookie = ctx => ctx.CookieName = "A" - }); - app.Run(context => - { - context.Response.Cookies.Delete("A"); - context.Response.Cookies.Delete("B", new CookieOptions { Secure = false }); - context.Response.Cookies.Delete("C", new CookieOptions()); - context.Response.Cookies.Delete("D", new CookieOptions { Secure = true }); - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + webHostBuilder + .Configure(app => + { + app.UseCookiePolicy(new CookiePolicyOptions + { + OnDeleteCookie = ctx => ctx.CookieName = "A" + }); + app.Run(context => + { + context.Response.Cookies.Delete("A"); + context.Response.Cookies.Delete("B", new CookieOptions { Secure = false }); + context.Response.Cookies.Delete("C", new CookieOptions()); + context.Response.Cookies.Delete("D", new CookieOptions { Secure = true }); + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var transaction = await server.SendAsync("http://example.com/login"); @@ -302,28 +321,37 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test [Fact] public async Task CookiePolicyCallsCookieFeature() { - var builder = new WebHostBuilder() - .Configure(app => - { - app.Use(next => context => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - context.Features.Set(new TestCookieFeature()); - return next(context); - }); - app.UseCookiePolicy(new CookiePolicyOptions - { - OnDeleteCookie = ctx => ctx.CookieName = "A" - }); - app.Run(context => - { - Assert.Throws(() => context.Response.Cookies.Delete("A")); - Assert.Throws(() => context.Response.Cookies.Delete("A", new CookieOptions())); - Assert.Throws(() => context.Response.Cookies.Append("A", "A")); - Assert.Throws(() => context.Response.Cookies.Append("A", "A", new CookieOptions())); - return context.Response.WriteAsync("Done"); - }); - }); - var server = new TestServer(builder); + webHostBuilder + .Configure(app => + { + app.Use(next => context => + { + context.Features.Set(new TestCookieFeature()); + return next(context); + }); + app.UseCookiePolicy(new CookiePolicyOptions + { + OnDeleteCookie = ctx => ctx.CookieName = "A" + }); + app.Run(context => + { + Assert.Throws(() => context.Response.Cookies.Delete("A")); + Assert.Throws(() => context.Response.Cookies.Delete("A", new CookieOptions())); + Assert.Throws(() => context.Response.Cookies.Append("A", "A")); + Assert.Throws(() => context.Response.Cookies.Append("A", "A", new CookieOptions())); + return context.Response.WriteAsync("Done"); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var transaction = await server.SendAsync("http://example.com/login"); Assert.Equal("Done", transaction.ResponseText); @@ -332,7 +360,26 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test [Fact] public async Task CookiePolicyAppliesToCookieAuth() { - var builder = new WebHostBuilder() + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseCookiePolicy(new CookiePolicyOptions + { + HttpOnly = HttpOnlyPolicy.Always, + Secure = CookieSecurePolicy.Always, + }); + app.UseAuthentication(); + app.Run(context => + { + return context.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, + new ClaimsPrincipal(new ClaimsIdentity(new GenericIdentity("TestUser", "Cookies")))); + }); + }) + .UseTestServer(); + }) .ConfigureServices(services => { services.AddAuthentication().AddCookie(o => @@ -342,21 +389,11 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test o.Cookie.SecurePolicy = CookieSecurePolicy.None; }); }) - .Configure(app => - { - app.UseCookiePolicy(new CookiePolicyOptions - { - HttpOnly = HttpOnlyPolicy.Always, - Secure = CookieSecurePolicy.Always, - }); - app.UseAuthentication(); - app.Run(context => - { - return context.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, - new ClaimsPrincipal(new ClaimsIdentity(new GenericIdentity("TestUser", "Cookies")))); - }); - }); - var server = new TestServer(builder); + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var transaction = await server.SendAsync("http://example.com/login"); @@ -372,7 +409,26 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test [Fact] public async Task CookiePolicyAppliesToCookieAuthChunks() { - var builder = new WebHostBuilder() + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .Configure(app => + { + app.UseCookiePolicy(new CookiePolicyOptions + { + HttpOnly = HttpOnlyPolicy.Always, + Secure = CookieSecurePolicy.Always, + }); + app.UseAuthentication(); + app.Run(context => + { + return context.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, + new ClaimsPrincipal(new ClaimsIdentity(new GenericIdentity(new string('c', 1024 * 5), "Cookies")))); + }); + }) + .UseTestServer(); + }) .ConfigureServices(services => { services.AddAuthentication().AddCookie(o => @@ -382,21 +438,11 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test o.Cookie.SecurePolicy = CookieSecurePolicy.None; }); }) - .Configure(app => - { - app.UseCookiePolicy(new CookiePolicyOptions - { - HttpOnly = HttpOnlyPolicy.Always, - Secure = CookieSecurePolicy.Always, - }); - app.UseAuthentication(); - app.Run(context => - { - return context.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, - new ClaimsPrincipal(new ClaimsIdentity(new GenericIdentity(new string('c', 1024 * 5), "Cookies")))); - }); - }); - var server = new TestServer(builder); + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var transaction = await server.SendAsync("http://example.com/login"); @@ -475,16 +521,26 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test RequestDelegate configureSetup, params RequestTest[] tests) { - var builder = new WebHostBuilder() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.Map(path, map => - { - map.UseCookiePolicy(cookiePolicy); - map.Run(configureSetup); - }); - }); - var server = new TestServer(builder); + webHostBuilder + .Configure(app => + { + app.Map(path, map => + { + map.UseCookiePolicy(cookiePolicy); + map.Run(configureSetup); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); + foreach (var test in tests) { await test.Execute(server); From 97ced4e7c9b061579d40a656435cbe275f0bfc67 Mon Sep 17 00:00:00 2001 From: "Sean G. Wright" Date: Mon, 27 Jul 2020 17:04:25 -0400 Subject: [PATCH 64/75] Add docs to BuildFromSource for ANCM (#24304) (#24346) --- docs/BuildFromSource.md | 12 ++++++++++++ docs/vs-iis-express-aspnet-core-mvc-sandbox.jpg | Bin 0 -> 31878 bytes 2 files changed, 12 insertions(+) create mode 100644 docs/vs-iis-express-aspnet-core-mvc-sandbox.jpg diff --git a/docs/BuildFromSource.md b/docs/BuildFromSource.md index f16e82b559..23e107b5cb 100644 --- a/docs/BuildFromSource.md +++ b/docs/BuildFromSource.md @@ -132,6 +132,18 @@ Executing `.\restore.cmd` or `.\build.cmd` may produce these errors: In most cases, this is because the option _Use previews of the .NET Core SDK_ in VS2019 is not checked. Start Visual Studio, go to _Tools > Options_ and check _Use previews of the .NET Core SDK_ under _Environment > Preview Features_. +### Common error: HTTP Error 500.33 - ANCM Request Handler Load Failure + +The [ASP.NET Core Module](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module) (ANCM) for IIS is not supported when running projects in this repository. + +After using `startvs.cmd` to open a solution in Visual Studio, the Kestrel web host option must be used (name of the project) and not IIS Express. + +Example of running the `MvcSandbox` project: + +`.\startvs.cmd .\src\Mvc\Mvc.sln` + +![Web host options in Visual Studio](./vs-iis-express-aspnet-core-mvc-sandbox.jpg) + ## Building with Visual Studio Code Using Visual Studio Code with this repo requires setting environment variables on command line first. diff --git a/docs/vs-iis-express-aspnet-core-mvc-sandbox.jpg b/docs/vs-iis-express-aspnet-core-mvc-sandbox.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b09715e862b1aaa88b7ec826ecf6d14f3ac1c5e GIT binary patch literal 31878 zcmeFZXIPV4wHb2THoD!?Q{0N_de(Txi6W|lQ;97bBrnDsu9h zj5lfM=ouIoD5#m38R?m6=^5z%n1p}`KZcm(Itj^jdP;Ii`v3NI^&3EQjo=0z4+0(l zAq@c$4Z&4AfC~U1Ai-n%2g3jJA|S-$NJ@6?`VDgY1JySHgakxHgv3ODV2yv;AKwok zrXiudCH0V$PS=u*$A$h*VBC*uypPIT81zO^e0Sfte!PBzk%^gwm0v(mNLWN#Mpo|L zeR-9~s%q*_G&Enl)Hg6RGB&ZYws~u7XYb(V4)*Z$^7aV|{uB}#79J6w@Fg)R`D;pQ zR(4MA&%FGC!ivhO>KbTmU43g?dq-zicTex=*!aZc)btE|3Awzoy0*TtxrIJBJUTu( z#hji0K^Fml=-3$mdJ-H@X-7Q(QYT=rFiD#~Y(Sa;WOgy_`)m zAJ&knkI!l+T0UuyX7+r2BdTR9S<0E#B9;T% z)HTez_7_xK<4f;+Ajog^`rek>`}^71uPt>=>pg>Z%Ocw}-~- zv|mJ|K9a@H^l+%%9h3)BVVTe*>rvuZAd*8t5B24g6}*;9?%?AdR~6UdDE7Nhxm7<( z)srYN?J(;3QPVjj@d_aR;P6~D``c1kSy7o6wO_N z;4pQ?&{trFLERM&2?m*_f?5N|t-vQ-vcBuXzAt55hj2=3R{(!V!V3b}>np%dG-MgE zq&^MYY_!0fVhmMsF|QDtMgDGuMw089OPL2 zPEpgZ2CSTBZR%qf?Xnf$50aAUj-Td`+WvDc-4p6_XC|Byj-g00^w`L~_V~W^Z1>R& z6)pO^3psn-2TaQf=VhU>qIikAi=)%I>bZ_<|L4b(gRBNGLT*SUaUXYSzJ7BVg!|TU z1&D=w;`$R^GYc#?YlGbtz#*pfM610n_4%vIn;W;VK0HCrHk5zYgPUJ33Xhu$z%-0hlwv`mbxRT3uX_y0R|sS1`% zOV}QVoE!^O)q(27%?FWmY(J-$-*+h<@NLE{9B05)7n`A#H}9Igy4J5Nzzq9J@YJe~ z;@)XqbC~?A!3(lWxyUO3=M~_Fa?2G!8+irjg05<4uA>D>tS?r?K{$~5KQ53AJ;DFMUx&Q}ABJ`)-yN1Vjf|~$n7_q%;`+); z*`$Z(hx2cC9K(qBwJSuMKR{=$XK)9bv&=pY?ejf? zE<+c{O-)O#0F=1p!GL*O*S7jBZ2Hn+BK8xwNpDcJNQo1-H)&cmwwy|C=8LgbIKy`aiK>;2n_>CweXwuKKgUp1&&hI=5^WVDYnemzC=85SGSO@hG>5 z_@e16Kp}8nKjQlhp{x&o*OW{<;awreLm@ua=OG0-TN$z;3JRv)?sm>r>5f)mKO!*N ztPf12jdWQNd^?V-hxLs=BZMxVnYCq^eQbg(k+qvKwJDRK`7>% z<_o58Spc89QYh-)Q6ISszNh}It1>AeS$2$3QYrL@m37$pbJ(I2T0akxycff4CRbUV(tmhG4DQj4))tG(E658a+B}zr8n$MfacWEDK)?X8=;(q zf^|s}iBZsElz`#ZQE=lTdL2;ir`=+7Dblkfhev{MouD3oO6l8-7aTm zs?7Y(G8riRW*`3-bbATsBn8Vn0Y$F&del_rh)%ZIn1#IZgHdjcimUE8x zNru1(*yx=!gnDLk*NvoMa4bX?rB?jF8t?=Xwu~wIF`+E(Wub%aCxWB@lWOnIPxsvT77KN{mE$bR!}F4(J7Dl9%~9o?w2#Y@RU zNHeUbFkRc(-EkuMP3;@%fsC0W<)h#GiVXS2Gw^H2ly3*zJ2SxxasD8&W`_?1cAD8F zp9@~Ixm(}7-{D~5Ri+i&DjR3YAuGBqJ(|m2wHg zeO3KKFGX`Xug9&JtZ6M7aL0H!L+G^v`Gibt?h?Cpyl_PAoCG zsQtxuPHwbwm~>>iTUU~1cH5*Yw`}0o*WIQVGaa{Kf5caG^l~ix5INN@&ZRdh17Vtj zSUXUxfkcho1ZqmHiEsVr_gc1pBh@k_gEv6_WP0^KS!nbZW67UdwWdB!jpA0=O;_bp z%!KA^hD`7kfQu3X5g9J@WIWKgd#6-=3Z5Hy#Pu5yZO($?YMobTgAdFqdNzwBU)buH zdiuk)I|6Hxp6vi0%HysS>P&1H8pb5G=me`IB$=Y`T=eEXm2HGS6102 zy;blC;!E++Q=t=enQS(@5QEKMs&d&RU%>Kz&bqE`=i#(K{*zaLo?L{6u7>H<6+ocr z3IJ^J!__xq4pC#RFj{wUU@L3l3MY9SIC4AML_verOipiH7palNLnJq2bzmrRy(^{C zr8D3)`e%x5_JXmA5vFje<5!pCz(kaxR0}x^``6E})Y;+&4?GA`sP6XM%lrrY?461$ zfaftoYJ>q)r_WR}@n{>w`|RyLWb+uJbYXt(U{rnucnMi3VxTN`WVgQEGU(ti{5dN^ z2=F(J@Cq=q3#pU4#ByP^xooR(D~MAR1T9_loX|gG>LLMxz*~v!BPYHVd)ik32-y{Y zPD>Ra_HqDErSU~ zm07Z3FjYC=9^cm>$|hva9CIgcw9MG={%|#$dj|Yu%g!`gEF8ZUlU;3BfHV4cz}-At zl*73Ib&$MaWb;jomPu7@=%Xp#;dkl#ri9lg9LK`D-jktYzxoD7TvD@y^;S4AvmjAh zxx$InJ4=RG~K)Sau5{b-{!Ya!$-v-{Nyqf<$lAIlFVu_8@^xByAue$^EKiFZyu z8RlF8hC0?SPcpIE_=pD3A$o9FRzbav%~hF7ju%3k@%@xxi*>4XRtpjoz=aOUbW@x< z^o}inKY3Z~!WMoj!sz$&M|+VV>&(>0o2eJTow;xE={j%f-i|&SDy+ZQ@mq0wxA&qz zXSNrm-DIdeMEvhya-j;3GS4uLSAga*ywWbquBHxz*kB+z4m1cyG~YJZ4QzFHi8n&w zWxdfCV)1om3vc4U!F#-dX_Xia2!F*q!U1j`msgre`oqQB>)=a`@pKq3I7ZHmH?UDe z)GyTKHyIr}j4$3%FXm+C+8i&4B7v zk2?|z7v?u_Ye?09WCUxkd~H`JecW68DcO_z=I@uTa~XyKEhZ*n4y zH8>XSj~xU=TpDan<+Q!+2giSlM;|xU$GiF z_HGg>Zts-`D+YLm=xEDB=I8;NwSIXZpJhcx4c34WJ#G66e@Bc%X6p1LONhU4t^BBg z_STdZPI-H*2l3Xg@_&QfI#MSX>Tx)y^<#_G3C6kw`l(@`+aua%FCEp&oarOv-(jrM zIha#$R>xv<1!!d{{uyY628Ql)yjY>a=j4qy=UZG~JzbTnU^Xnd9-hFVB*%*E^MiHsjE@@5hN zYvV>nvdh2WI*RND@x2FjWBO)72T;(~aZ|l_N|)RazwYSC=$ht9y@|=CU$ydcv|1u# zcdXe?1$wJfksH3~0LV^nY>5QvqV^JSjQY5J?b2upH&31y(zQ0+ip?BFnK6drY=Rjf=A3}1m|R>Wprmd+q$?X zG~U*@^C08h04pQS&&7ss9Hho-Ivzw#Di*qZXy4xmB0mkJB!%6=jgZZEj+`yklfC}60+}X?FPWglqfdLsOWm6 z$*6m0Wz+zl&zB(E za5u*AUgvuk-HB)|+#@E7;|W+wSuxO7k^+0L8U+bae3-v^NKLo@RXML>XSQ|C-s-`D zI9gRE)_KPC4PS z2Xgdck|jX?-ubg)E096}Id;Is$o5lekmu-%yP+*A`pp#}xYO9Crn=!mIj+b|onf`n zlg2yFeu`FYfc-;}BiMi-kcF`6ZtHf@ylPHqz2DuuEqIHDdpb>{Xl{r2kwSU@&xs@= zfgA1p#pGb-l?&O?mprl*Scy6gkK; z2~(vz+TM~f-CQXO!&_5)@o%5^YKG3%l_#v}Cl#qVq&jQ}Wksm`oj?C~zex+_1FP^( z(oe|gCa^Vjmj!SBXI`G`puS(<`2V_xl2Sphab%yj;a7b|@1EjL#)4XmYB%>%V0SlP zfQ%Vzd2;;{Z`b@NF~p5z;!>^v2)us1@h*8xgYA|GL#=|9E<))Oz-RwoHT{l6qh%>3 zwAF_(s6ZaRX<`%Il(l)X`z0|e+R(2AYn|9_QLofJ;I}E*uI=3Rd3MHFht;%@@y3WK zP13u=h*%sGSvYKcjq3tcea`MyoRO<2Il0lR_k&HGq0IUlrg~N@Gx5zmkn9O2Wohe? zRFRH@Cu@cmDkfDCy=@JND(vf23bugYM+r;!1_N~%3Q9a1* zonl?V#K(ZLY@IWO9RFBHbfvCwu|#Q!>cS7Qu%A=wDY>n4-UY0RB(m7T$JSs)S*Z@S z0AZsolhE+xN%#AuM@kM)IK+1LgXv~2Gewb=7tvLa)lf0LEWe0OJa9HA`7TJ!D|s&Rv;da3Q9O3$d0tz3mxr>BD8|<%|>z#R`mC*k`ab zK__uTV226_Xs^<1jaG2~_3b1--oQYfB6>Z;d?gaZF0mj==`?hC4E!X!any1YKE3_a zeVQV`;BCn8V?qVyo_CeBW-)5d0yyycrUmJIb{2}migTfA74bGL@HT$?KjmlAS|9Td z$?LO?LBtJbB{Ip^-3`U%t461s6)bkVC2KE~50^i+Z8!5z6dzU9G)z=~6MxHf2O{N| zF_UBSNH%&gnH>xBL`3>{b~+NZRXl+U21|$ybXMDx=$u5G4xW{)dfx0L7OlD47?|F# zkhF`I{A+9eu<-suYnxNs$-+j#9xqc)kE@fe07cZt777gk@C@kw_=0B} z*^!jmC-Am`$sNiYyT`>GKoQU3j*y)9Q4NuE zJKiC=Zu$O;osO59@GK}NZo%tYS1K&Bc&9{$$ciI3ExwPKHQ<}0b;JQNRmbaSB3hm( z>-D{eo>8z?I^E04@pmf+&SGm?Vb)x&8!caO#5dL;OWc__ueLKe%m_YthBvbhJGpvb zoweh2W+U)XhyHUz156+)s0*Hj`PP0;+GJB!OYLiwtHCwBw*sJ?dBfrs^Zw;ULeHUd z1cD|H^8>jlV_O}oQx!p9RZ$+92!%e~dGKCI<2)hi#vu^%MDPlbaT}+NlZLcD1Y*&l z2hQlyt!a2-)-qq>{Cr|5c2MM=ygOem<9wB&XT^b>h(hc!EuYv8!Q3aE`r=OPcHR3Y?J5A{J9AyW(_Iw%-cBJv@gAZ#dr48->(K;v#(3@vQsL zr5$eOseKVg&wbcUIrsYXNT%yqqP%F*mzRd|AufU`{B`pg;N@q zGM_G^DvVnzH8brhQvq918*HS{pNQQfOFiDdj&(x8f~&~QM8vh8kJHYX=GQi(CO3^t z=bHKfi4!j^`QpNUvoMo!8}|JxE8)*{@JGnmGW7~#+3ZWv`1iAdhP$aHtl(sERd=7{ zXqjEoIdJ&4)%C=b~O0>mpar@T`H07^;PF? zD&PCuc*r6zJdj%qXRb!KK7Fxe|GbdqStj)_u+*`9ba-Ep86t26VC`J%GDE6=||k(~)B=T4J_rXqFe4Y*>>Ao31GYaZR1hJnM3S@L4QR%!k-P>-m^`7u`nvX5Ul;h>$ zG5ZvOc@R2iIW%1PE{My1V*NlG^YxqA9a80|9F?)icVMfbVHb0MeRa66%x-`r&xWtX z+a_qoiYFII0BalC4Jn(x8y&ufm)M9sj>A@OUg9tbRKDDSPe!4Fhu z`=n3tiSG3Eb{}i_Xun_>uTkeK>Gu8BgD6?L2G72z&!Ty#vYjbpw3Wrkj*N5V1{%>m zMat~N-8il%_3rdmKnr{G`$VLgR8A!4!Gk%10qsIRhp~NS8ibdJsAw*lVrq0&-LE&p z@I+ybe5f)ZeYRtCZ#n9&n;vGi6G){9M$O zk!#kwo6HX$QCMeygb;}qkgbJ!B@d0fknl-Zde#@7<*Ov4`<2o9I| zrfcWqB;lvZQ4@Ni$6i2Nl`MH9>MN?#;%he(L2U_}r9;r*#Wa{ zN0wEE6GIv4=A`e$k-nzYxZ6w!ea#r!u^-#ahQ_C}d^sfgbc46FmR6wl#k(b+$;pj> zeEqugIxfVXKC83gL3iuojoMkQQz%XwbZ%;nM10FTf(=~GQ!9=HkYR>Q8YjiaG$VSB zd=Wd_h+VA<5Fpvu^2FVKJ$*(6$bF4v2us2VPF8Iu7LXy+Z8pYJ1HAJgk5=(1uKN>w-sTCE>SV0L=_48C z`#?TrEsn)s=E{ci2mSsVUEj22E|wq-3uFFV?i^0|SeLNr6~J*ywJbp~uk{K*>}QMI zj#eWV7f>*Ezvvh%B`x!J{`sll&2LlTy7=3N93>akedy8ezc6yk;u_+qlr(6if%%lf zw-G=d(91&!M*n`r=GK2+bR+(p5FS_3wn-zZZIc-Wwim zrZV%1xTIK-9r*k(6uSZ}&%?H>AUzvI+2$|x#tio&z|TqObszj)<5I_{x3VJIxk5~M zw=*~=-L)vG)tdd;x+WzCa@B8CjaFB0aCeexthL{0bfPF^;qQ$&;;>RdbG19O+OZ-| zWO7bC7Kq23ier)&O_dCMyQEB1-;2LH>7eWhM}Wx0ehE7k<_K}IdEbN#t99Y701=8| zzztr!-2&+_jr!J9k65>t?A*d-SQqhQ0;C{$%Pan1w3WuFGLsQjby7N$Vne$yAJzD| zx!}8rJY37o=KZNyQs}@(o*kI9ijOc*Qsk2@IwZCTYtWo=Us2Mw5ML^CyZl=lZ04M# zQQXs$`4=e8!7|*hE84(jIz=kq{du;i1=ru9qm?I+3i5Akn&MEtxB?i8YmVxf(Voq8 zAl9ARFW8=Aobxe|wq}vgRs?lbx^1UVK=RVfq|9l9^Do0a;=!G}%TQ}@;!LvSmw->* zy<`@WXwNo(iHl{krh$`m+boRU*z*xF>?<)R-jLa6jdju5b59tWRjHD>gGsD}`hMRK z?UhC_Y3E`DU!fWeQ?=~Rncpz6@YTiI;58v&>Lu|aYrkZKP+}jW1yaDCd5Ad^!~lD;{7b1eM_$tVQeCWtoxthm zgh#(S+;ES%j%e`73m7t%hx+^)zRUoD*4OE!;a^meEUwNSAfuCCxkZ%12B&4 zlK35DACui3g!?E9JjLoC^p(p!rhoZ&)2NFzkc|A@Al*KR7I(J{ZhZbVAF`c{>z_zA zY39>6?f%%q-nUAfAv>41<`hy(mx4!b`g32!3o6v3zTtusa#I|)<*cx z`R0l#pcSj@@6N@c2HV8dWsggQ#GI|-n`*2js;$$4+Nvg@Lz#9;QHEp0Ca^kM7W7c~ zmD4qA-P)+A<#D~{6dU{DI4?g$UyF6b?=F1poi2|Nd&|!J~iG65pol>fZ43$u%ryFkz(RbD@?8rmFqk zI3gI9oTuMPd>w>$D8i#-FRuXf`+pt|lY_orrC~w^*gr)d=buL?#@K^A>xKyA&xh6j zJTOUSA2&WmWd8Hq=&n4x0z72ny1)soCcm!d&dNK$ABXS%2JA1PaNlNH;=c+@mAztz zN!{f_5jQXe;m9QrB9?kyQ0K|@B_RnwF!f!DtV43f@F@z~ zTBm#q!-nKcM>DkC=4#P&YmUQxfejT=rS!{>QBl&R5! zp)O@!)E&BFhG^sFnME67vWJO-u6GX!Wj|7>QFV3d%!IagTFS_x;u{e{~i^`{re zyq(w|c6T2^b&aqZ6&gHoD%1ihH(i2e-<6$DS=ZIMdrShO;xC_R+TWL+(g4a?ubqhwTNSf|;zprq)nJWNeZWOk!Yj%JUU^)7+@Hu$@ZH>)y6SzE5aS zBXAKChPa7!TQXzP8Lkq*ID=PPa%cH&hEICabiaIFr>wWuxV%XAn?;&yrt1MZHY9+~ z4#9}EN8Y#gRuB6LWlROvH;82;}{Jr2#B}=<^>~gBRsYZG;bcOEF-Lu$V zJh*F~cVX@4fl6+LMAVBXWuq$Fn&roxs)~%uB>f%|_V+lkKKS*U<%!DY9n;GnEgkkE zrMjUK*a2X?nFsW_5tu>QsRyw>ivlV(3VtsO$G*t6TXV6KA)j`nY|&n@__`!##d~ki zC2p+5U#cviwS2>z8&mXCE`|bu`nd6Ho6}(v;9sRdAMfpj5A=D)O0x9Xdc2n!G~D$@ z?YAL_mF2u_%}}2{*9=#Kw9En!PbD6;;@+CbZ0SE6ez02`_?s~K)n$!yb?i+){qd>R zUw9+D)jLNer-x})%Rfq;PJNAN6?;bY?6z_>ZGrsfCMB+>(-Nj-mlvNz^!ZuO%fKZk zJ}_)jSATuzd^JA(XmO#SuL;ffpSAdhA7A~l#C)AuSC#(5QS8hW0H=O2bioAPzm%Sz zs(NK#zaJskfZ7Qlp7QftQW&6at#qKlm?19II=zm*Hm1bs^O1Noeh=pr@*;@)HF4n2 zpq*Dg+T%X}n_8J@F;gf5b|O|W8DonO>atJ3clfMYPl;sMWLKxbdrJLh0TVU5q=$!c zg3T-;Zav#(Fs#VbsItUNbyuqeJ;u51)YXF0VY^FAuv%6@BXx~T_O`b;Eo0m(CdUOM z&gg?n2G#>rB@@^nzV=CC`9cp=(rf@b%d}KqOn-z>!35)zRQ}nRj|Ux9B&h!I@2Uj@ zE_oUZGjjIyiOp?aIu*iXlx zOOfriB&M4n6VG5r_$Y^Nu1=LAy!&havnzlyol`f1>j#NP<=;9u8S0^E=!autWey7! z8*io6ro0b`7K57l>H@~C#|5-q4F(~!y?y+hik*Rz4+3Xmd%oz)dEfVR#H-4Qgn9RJ z(Iu^3MCcKGYu{}cr{v{v*aoC6b97#-j$eBszDMD4uE?tLo0H#?e)2gW=}?GU(dypo zXQua+y;T`#3=D)DKGEyGvK#bl@(2~^BSWEJS~a5XW!zs6U0OgSOT==1S>l_4;=1E zIx4G^LSHp|?D!j_@1FECT>+{|6VNIx8il6z9v&#ufuCEZR&v(}=y*jGN?CNs6mL@9 zD-*lSX|!Fm2+O1gQ`33fXnQ$Yb@}3wXRqtUN1?`sc%82!XRh}|5WZ>bNo4|axGFr< zu;DxgHVu17SKbf3vipZ_VCd5L33V9f9gJzQ9}CJUdMWdog*~UjuXo$5?W05t(;_O4 zXFcy~CRz011VlmRMHid_6S$igvPHyAyJnHmU?3Se$j3`Yjz6 ztO7Q%?$T}!SM8d|A}q+i4{6(+eZ!!krWLvz z%`@Lbp5L>)5a`+C)J?v#zX${h>SCsZQDrCbDE_XN3yTmS6IL+aE3yr4z3-N@B`?+@ zDQ+Cj|9PtmH8k4DoUS4isQ$o zZ1+kSyDk|;?;G6dP}$A&xYMPGV?dp(A7{IrPx#7M*PS?)r6|KqE{e=#l?+cJFx&Y7 z!xl9BX#V*xKKg0T`O`zv>Gn-Q?t>Haf$bkdw=`TVOm^=H?Y3oW2Qv^l$6w@P%wzC^Y zh_Ggfpbq$svn54Rs>~OfnQ2pv=#kbSB9H5A;XOc;Lvah-BU&6+w;s_C%nQ`e3rx#$ z39!{isUy8K+b==Ub&K}SBjV?cC3T5Lu}OExIGzlW$pAkn-^9csCEN2ADJ`9ne3s{w zst`_Maqv5|?7a`({CLs@h<^{@`{3kv18tD9hzQdv*gCbas$exQa9lfcx&kz&wjzZ> z=;`{pgYNwvd`7D6D;W|1#HeUbHnJfTz%qG}#{;HMm1XKdp2E%`8yB|5xI`8=cRk^p z8`tN_Dg3Y#$ode#h2Be z_iG+>lrpXML^@PDZ+>{@Rf4yyu+-?xFfPqhGulIykz=9Ux}aB+;{UBQrcxlTgXy6SagFx8Lrc@+kC#27`KM<6hVC*`t~m!6tXnPr zbU2Mte37+n!OVvq3dKnXhH~lGUD#w@MqstF8K9QzObWMV%kQ3m4-}VvrRBd0`eM4O zjhCoZ+u4SdBR{K#C$luQ)rZbuCFhQBy=|siFCU$@*Z2qqJ1t@&Jv|9BBr&RvPU}`x zzra!&#BQX|bJBj^en=bM)0+AH%3R06I97AOcFNm zN^f+(1a<(j7!miItS9%K&BIaxxqhQ0sj&Ca7LldZu0od7B4=lZDrb zdug7vd=5B~XFWo&1oUR`jm+wYwn;f;$Tp5)Rs6FwKsg%+J=`&H1y4DCD_fCbC&I-j z3hJ-xL?xI=Gs`{4_D4iqD<_%^wZL&%^=>A1K8d4SdK#4BA*1R{I-H6fkwoh@-QBO^;!;net&oPF znnfjQLp!-pr2-JPIXu$)VteebW_$C?e_ilAX>sQ5Ly2UHCacu3$_exPwrSI!SwQ`6LVIS*un?IM&o5_i|} zG1Q$*Jo>jsR2i)CHo@OUJ^w=_R9Oduaz5YZ!hJmIHLkqOz{j*Q!|zQ@<=~vT zZh2b%+5>1Ud8*KZvORpa&p+^;~X1_RsNeMEsW~J$g3P|G zqjB+KG4Z#}&Gm_vA1C2=`6{~GNghAH{+90pU?oBKm1&>73m;uOYJiU3Yela(is~Bo z5%j7tUhgxI|80w0y~Q)(=$I+ zmuRVs%M@wz;I`GqW@ry}LuM8hX4003;|Z$CIZ2-kIViSu7yPw;**pK7NPpuy`M<7? z@?WsmMxC=qk>l{*CHI-PAg_Ijr?J@Zen9aBh=yVD!*F3T81s46;__@y~rX~HY9<9ivj5T|StSA+E zg);?y*XvotcnbxDjdr#QZN;IY>W9Bn!XNAuoQT4(oqb4U8c;fmADDb6X~ zds`2afQ*g8+T?cp1mPs6zyq?v(d`~SNx3rZ!ou?@gbFvA_ng16oW+(r&Z>zCH($_z zBfvE?NjXQZ6UT@9rGJj@S|<$4S5j&x#WqCVv1X=~S%X`Nm6wbw z@9A^r;&so*-Sz@KLOF+EO$!_{ZjMU$nR+j$gVgcWr*(`;H0tbB#5A2Fq}JZ1_Fy6w zYL-R82rnQ~J+hhevKV99AwLxoy)fc(8Jn+dzwS6Vk29s5o|_(enrYHgJ0-(bqV!G> zR-f8o>-)ozuYV*wO~_j|A$o`5p;L~~&_hGnTnP}w9G~sK27^r=QiBoaaEl@=b(Wt! z>Y@eC_ybM%Q2CnaH9r!L^l_h~WY4#buh_ocvaTgnxoP?(Wi__PC?c5oEnBqnR%T__ zM|Xzt3{%?%R`H3cuu|A4zpm`Z9(QqGKF$M^R=Lva7Y>wNQGR2Eevi=4>XsU~s2$At zCuJxJe-~7ZmX@t1P0oFIAl2TlfBQNS;Jvn?Gc#yZyj2#OUomIgmDm4s?-74ZtaCDv zTR*7$c4%Pv`+E$Oa*Xw-mjOpr@VUNxbuEkYP3JnO|GrcANjmuwA{fWBu|OKycH*O7 zlOj-%vl+lM(KtIXS^TrkiakU>UgfQ&r}0zA8;m#N!ez^E)pufiQQ!111$p+j;r4Pm zwwI0d8G+wlIiQ6?;JwCthv&T%fie>&;p@(c5qlYINDHs z>`_TfrY}Tn^5lo1Ls<4(k+0^Y!}pM-APXixFw(R^tHh!+gJ;6&-EtC}eHqwz&5Jit zRx_-BrLZ1bOh$3nuEqq%2-cvQ)ZZ+jmwY1HQMQn#z)W&u;#S$nO*G4QvSHj{(_4XBjRw7UCq@!bC*b&%W7f%vF5~2Ud$|$(>t??ax-Gjh{ z)tUtvG-cvM$3$~eL5rJ^m(L)&`!phWg2AsRe$PV?H6%Qm?>C=T9+d8IKJJlP zYkY&~%(zvB##c0b2Gyr2^Bg|C0>IG=PoM#o-ID91h}xCIv_lgE2xFsL9_HtM`(*Q7 zGzm0ZlJ~#~90t}HJ+M9tF#M`~Vi9*wkW1)@0dKi!{k#IWVfUKEC(k9W08`Ef0Z?dJ zNe}8m2ZQ&WS(9KW_)zy^!kyrl7YMHeGj_8;d^#+q}QN=*6%fReh<|zTBSdvz7}+-n#RO z(i~LBxj*pqUBaMXz$(1<-O6jLT##4LGIgwxZ>#^T4^%sJ|$ zs9w6j!K+?dcW}(>ocB;DhN(7QgT8k-OoM9r-7Wwnj8(>1EW#q-&TZ)?+bu~8H?>Vo zCl+gCI`=M1$`-52W4uNbyHcN*2w|Z3?lLtECcFLf%shE{ zw8xXZr00diaXKP>tKG8dhdYAT$Sh-Gk;%IxgPMRq~UyiJy z{MX{{r}oJwHh-uOofh9CjsXNC^3y`1)Y_$9GuKevCL1;gkVeP+KnE>BKTf?I2LlPT zmmJA2Y}-y>D8k>^ueFjkq&{K(I?Usg(EnTH_w8Hd79w7ioeMnZwVc$@@ao+c?S`Ao zpPZ^eJrcP_EqvVG%%8unjVk3{3`eJ@YM|of<-28xMzW^=a@*y?x`a!H1JEDbHhK7HS%C z^&54>`+g?040C=Aqg7@gq*{tC5-55>`@|`F?CAx=OH<8Rs0a6lhsT7qK0-t~?UUzb znPHMkBNA)Pqk0CWpvbTj#qepoC$=^8iYiFf`HT#D>8FlQ!#44YAr7dW&oQz1B(2Yb zr!aTDQG80cnwwr%74Y9}@)wt8WtXnNb2fdGYJXhm6t0fzlCrSG=nu!0b>V+hciz!( zy=}iI5u$`3O4LM&BwBPqkcgf^nl_k3XE36UItf3~31S36^r#auqnAW45uF%y^fnlE zFeYdJp7WMG>%7l-*ZJ$L_m5eYVfMaf-(}zXy1t+9#kNyWw&3b9t3Bv~JtPOU+su3} zF3!)G{uTD{`GwS9VMeq<6d*$&d3eD&lcot6n({37+EfFdI@KjtWuGrtwumfSgm*KP zUYt&d(}a@v8%6eNDn4GPnK+QKbkYXQL$|L$F1fiXo5U>#)caIastaYx-!T19B6_)9$Z=Oc znJPdeRz-Ine5M8&Y2qRNrqJ2JPLcFRZ@8LaPJ@*0;>rECzT&NQk=8U9a|Xi^*fPB>W1ZHGOZ1WEfSjQ&mJ0R@R_(SnmZ*?{*QW-Q!r!l#QL1UvY2g zz1q#GT%*F{m3f&cKA*({50Yz?zbC*et=};`pY?paRCZe)_nbFZvo=%SgZ-h}O*Oa) ziey7f<%m(ev{B~})}Z%=Xg%J6jctJkI$KX5zAmvZkF?uvUCr5h_>=i^L@&#O6%pjl zN?1QIq8u_}Qkmed05j zLRe}%lQ^RuZ$ULH;QC-qz1u1Xs{wCGdZxZ)l^YP6dQ zYmn<4H$R7L)e5L#q;O~)W`erd<<3OmQ z8jK-jq-1F<-WJ`2UEEN;OmK)o>*MJycUHpD;!N{-*p1dANNXY0aNen8ima4g&yT#x znqRNqPt{U*hyn3XYQTU27KWUmB_LCB9oOdXB5)!@aV2c%>bou1AHvtGpomnn7NMfjN;;{gibsuCaIuo{MuW3?bR%uckc;7D^$r#0q0f%j}zK zT-Dz@RN3!Ivf+Qw^0j$uX^A+9n~p(PO9Lh6Qr%=xEWdtjRFP=`eh({JLn4+#+N_*! zGc4KfHp6R8Y!(~3YDDto zs9R^aECgd|o|Wiu${?I!FxcvF4bOYO-Li3sV`et9q;4SMbQVDT_cQo2o8R<0sZjMgF;v+BN>{2EPLR`HlFvIu)g+XzJ`Dc)aci z`qx2_^Dqb;O_2iFiyTSk)J5cnZY8x!I`^cv`!gotECX7i=PyY~wNl)v-LZrHQtQ z;2j<*vAI+ocaH|7l;4%{fg=KRMfoY6$7I3N&^NFBR+)xRno65)5}HH3gFHL&xHEg^ z&$`s1HVa_x4N(rT(coFgDo3cEF62ljk=-#6{h}|d)35|S)OT>pO*V^bttwcqh8S=! z{4f(We|k@A1K(THF{phbuY|`{G2&9<3zz3wOn>cB>|6N**q$_W{5jOCDJQN>p(-m{ zm&|yyF|^XD%C-YKiY`^r^>q+$c(tnJG%E3M^IO9M$879}r^spPk30^Mto_3E!!F@@vIn zv*ty<*#iO)T0Y31cQqcjAY3>*L#8t(KwpXK^2XK*Uw=vxR6BdQO7X39;y?a(|8*)5 zQ_F+Y-Evm{I}rB&`tm+HsfU~_BKGBrG0uPNCcgZG5f!Zmh!sDcyOH>dFJi<ryn{IAIHKN~9oIZY`+=PM<};qa=)v$;Th)$Z zXXFW&!rGTJ3b2-~Jmc&;e~r2v&FY@p z`e2rw;yp7M=h_yU5VKsFO*ENLk5-QUj7B17F7bM=3F+p(5Yvw!;ohz=xIYVQh1y;! z3ky7P~+lQhrbC@Ytug#@lxu24Y0P(Xhe9WABS-uq2+d?RCj!Y~pJU zQ+o`<#N=$W&h`A@XDWjBhG@y%v|Bb^*YMug zVnVcOvgHi^Yd02({B-ht{BH^f^WW+bU3~>o=p?yG@NezNJ62%RkB&al6xaDbl1%@W zjN*Sl?hcmy(m)swSD`J2bALah2`{b55(Z34()B$$x>U&N3`1P{`xusby^r@xj z{86k}X<7EyuhnA`Id5lX?j&@C7*jsirl1_4TUWEKqCeGwb5>9UVZv1j_g(}B#^w^I z7rv}N1F#6ok9Rt$jjxfP8N$^dXXwv?GFGohe({<+lA9$Z@aVbO7!}7IbUvFa`s6wKPIF;wz%~o zZ)YlDSfD9_C`I6IKMCI~B-j|Gw4F@<%rCrGH!-c6Edz4?U=cCtV`MYTHph3BFdnJm zL=gO5*rs}Y)O!I|JbBTeFhIOBB{fOex1z&cCjPz&|4}ku=Jvb|;?P&5xsix4=Nmr- z2mhSmB09`B)6T-58p>yKk4OLm(?vq~y|z0i54(>Ty&#_qiESByad_<|`Sv%(RSYjp zs}KLgiG}guHg9vfP>p>I`*B8UobCbYb0EYki@8ZM(3A-A`o7h$p?29Zy{_!Xofcco zBRh&9h3EG)G=}B+i8n2z))P8!Pp++b!g#*1$p|+Y%^e6L`PP}7J8qNvAOX!O;`m*s z{9XB^B~PCT;k~*uuKEL2sSz?KyjOF`pyV@L-{Q+K1p~|tJ(2s@`GIXa`p^TE`dK={ z;S?1!BU2e_JnY>IqkEL(m)0IuYl?hm@z-AJRhf?r-pfr1L%~vT&z3A^j1vh$ATL0M z7yaJM!yB&<4X}iBEeoc083lPO0XVvu79P_3@M{gc zBRim=j|Z%P*K(q}uoCCbL$E^4sfDRAk@*7ozYyaIT4SeRS7+mB?VW>|WhOZ-1bi#s zl##Yeks^-vnn^0jfSA4D3b7*aMHdmPA&tYTv$C+l>Gh}GjOkJHC~P(ZI$d*Xxu41T6RKJ8!H|b6?;??%_v>z4z1MY6>ePLDL6y`TzcIWFyIBZM zB0=7Eo+lV=%*{rs&^VM31$vHJRBy#?^wjJev<**piU}dg%sw)|dqq+|IQHk-o8|x< zR7tw|8TvXq<<-Sbt=Fa}oQ6S6yusd26i>$FlVF#|O6)GQx`gN^2)QiKnV$2Uj5<{~ zd{1m#K!icK0i%z28q2=CRd#tF>s~#y`t>@7cD>4lWg2d&$*Y_qas%0=h=$Duw3Nr} zY4P^9s>(p1Xc@fliL0{a;Pye#{pTOCrsfU1VY~+IRC5lQqUN(WwKxeB$|ZXT7ICAY zV)C#AzF&*g4{G%|j$#!}==v!wI;-XkjSS`|kM7J6t;s7IjU(65NW%U^CN;ojX$oId zd{L~k{V@%%<}8V2ZEL1QIP$7aKBz@b>Y~A}56CSX%&}Tp6p9I7JQy6Kq#30?+E>OT z#c&U&V)h_~^Cs9tOBRG5!62Wz^$@;jtZmv;`Q07O*MzJS zGf(G^|5DoI7#n%LDX8S*7x4k_a*1+xC=3A2&*lIt+ncC_M!lHV>->1g{v?06e_SJ9BY#BT zx!rrQnHdbySZ8=`K+VHSmEy5qNG%glp89tT7X;8M^rxDRb=qMn3c1iUyZw3P?oCXs zSfb>9ESF}@4=Fdnqc_`boae)+6%8ME_U}Jk_JytNHO|hC_iWfpAjx%;TTS7$PR&gf+MPruE*xOKtPqR)NIFS6q`nai_x8#u-iBU6wNK$3Yd5Hm^1wL9$?b}OBYlU-Z z$E!0-GegVZ4I&W7k&QPZo+s$*5Fzv8dJApr3jUc%-p-{}W9hy@<+Qmq7|)tFXx+=k z_k8N-_}-EW33cPoh^$OuH$sj{#^b%bGkNWgp00I^jo-R@cM5`M{mL9;E&KhaCcyGI zgJe&^JAnM)H3=>36aYN@i3W3{WY!v=9>(vueO=IZ^*5E9v>R@^p2dOvhIH?86Ssvv z7IN!&wbWJOrbD4r@q+e|eZw}Ho#QVI>O7X{2@W^c$sNbI+T{%oU7l@5hl#)Euo-gH z{vdTki`89Qy7J7U+{y}BO$PXuuI%<*{8=D`l%!M!Azwypg5x)vi8^W+QVEj?K2tkk z*$;GxpA2?wa_bl6!B01TG!fNgvjkuMxBLCS-}nFJ&*u>?Zr=2_o{Y_aQ*@tbnHtqT zr#rTZd+k5!zpoZj&lDj+72PDr&WmWMxyx3@6+Gt5f%yS_cKB>+s4>obp_Qu-nZlm` zDsT3Fp$>I#t!sw0%YJJ@XjYlB{!TfjY*N>=(DCT#knmAutO_L{8LSs_!IvGuCl`rU zV{u9wQvC`o0e^TAxqK0+O+~GVh4Z}XoZhgEZ{OyGLYTa=sMf5wo6_}$sZ)8sK`kUR zu6OwI&mRb8PxtxLUkXdUYy32@7z+m1A5Yo^o&4I%k8JCBl`~hHfiFkus##T$3@GczdOt6P+Ul&~FiPJ8#{0gi^a-#fISV!~ZQ6%l@L-|A%IIqE+ zl+_?1O_RXZ+2T85W14s}BjXVzf0K~_J7EO*@Tn5mP;W`_ie7>e;?jLvfnBsBS~rs| z;^wjbE$rOfUYyLEp?W?O1J<-6<(s|86N!|jvY_6l>8E;m*^D{?eF~$ScvsfbLsgd@ z#9tUD4!~KZDlG`V$miwcap*4l_KN*?YxV2!evvrQVq(IMgXvCZG=`g(LvsuxE-?Et zYHu_C+6x2&$T345XPo!;F<1@?92 zv_?Sn+tDOE6nqD=K27)C9-ArrcEqNxLO(F*kQC#;*el^aunUf zKkIm8C)8Ggr~Ftr5*@Lv&)ix7)rE2C@KuhSroh0eG#mxasVR;ce%NA6$TBXa?CYvdn=x8FTZ zLf58f4M#O=jW7PROEpCL#ueSD)-Aw~itL$aN26LH97=B?bQ_QIY?%u|p#X|AXqBBy zoNSYJl7EC<{`6zuy4X12k)bV;Cc5UdQ+E5^)8|&jr#v2g70gNT0>dM_YYpC?wHI3F zr=__;G*7_agQ(0c1a68iUaGk`kQ7EkG=L7PUJoA26eK3&&I})osz~8(+KpJ7y2&Yn zXqAqofh^^b#!k3DxL?p!o_HGBjGpV{r(2$0v>{S*~xqK=;a!CR1gRG#`8!a`wL; zp~P~E@#s@l*KyAwIi~nb;U?lh7AsPj+wgMfnp!f9JKCm7if<^t*VT?wP2NvY;1i*` zQ<9Z9IUfQ)%c~x2(7YO(lcaC_FeV32MPsiL_bHK4r$Z5?nv*y*wpIa}Iohb*7oWvf z%=bMu1{tV7bG-LfZoHnhNC@$zRi{~{Kwa5^#b96*@SN5*F1EqSQ8C-S>+f&A zPz3DwsV?hWJCuvol-p{utH~@$&YWH7$Myn&q)+R0K7}|Y>UQ~jj%3v$Xnvg)^E(eA z=}ZqA=M^$@@L-cPQ4;EFlhf}MkUPz?=VYG8=lxZRg8kd|H{ZU0r#R~K3%in1AK*<> zh8j44MK+_Yz7o`0X+Ig_`sr7>Jf_MfENMXUn?n@pLMd)P{7pc(=E!Tf_>_1v*) zt=O}l$V^LQQK{21w2On2+t$QN{ag1{#l^H8rJLrK5}yt*Cw!4Pf$n22sshfcvSYH1 ztQ|`2JF3>is80Ny5<49)^Tn{?Xu+g$^#&housv0Q=gHmq28lJob_w(BRsX=_0k zC6SN2Qj>Tq4b2-#diU5{>+4gD|1&>i0^6bat`Mw3{Eo9!n$>f)8kOS?h$fy32^kfB zDiyfH;ifH;sJ^aVF7O{gAd_a2+*tt{5sIL)A5;;{2DuXGjS|`qYuzKP=^GoWG-|%G zJ@|CpD7#ugCDdBA!bEeZ4u!QnYuzNH?lu5fzHw!6mYX_ffmE1fo6qG zMYw~?5s9rb!Q^=-D*2~B?sWCszr>YUvp^Fw{wYxOEW@ivRYgCam}7{SJZ}my>ih z*Q!JN4(0s1E&Z;wPgi9a9l~;p`uktKkrdvhcj!y~2CyVA{U&m=zbppvrfQ(mucWn1R+TSaqh?HXz?F7F$r6(@ zLAmVF0TcI4WbB-+KF?OlMupKUJ-@IFv zVY846PcjcT9aCY#fu25p$B$R8kC3Q#{$VYZ@`3)fV6g92_2tCh6jDNCkL#ig5gWUW z>An-PsDO>fg*O&f&Vo5sF;FNt_!K8LbBmbZlru$?-)ON1N#YZ*aJnG`i$q@i&xx}0 zmWm1P?mr~tnQk3V$@B7h9$F8PIQ-_T0j)D?A0(*}B;o|5AA&MZY@6Te8r}P9kol1Sy<~!Cy8_9?Hh!1y;Yjvp6gC`{367A?{V| zCra&(W`4PT9;dphEYAYRLw5hDHOE1x9bK-Ls>|IB^qkT>=PG$8e(G>`-mRH12Q;dT zuE9RX^ubV4qt|Z=U~#6xj;fwp3%*b{-i(tc*rtIRd~VQZiohFYM?KM=+M+N%zl6{P;s%bBN(3PGftk=2X5Bz<%*a z`GwTA=H9El%nL`eX#28q2y}R(iEC#iLSR(RciaXua;;{!RMPT6!@Ivybs5+w27&a{%|F5R%CJ&271jc;*Ngek(-7@Akvkue~)7Y|aUvO(LHr)yQ+W zbmF4203o)*-jEg8_vP3||862g+$8fih2kQSDW9kXG9{k2m*GwWEd3!&VEx>+W~|n{ zW3stZRO-u#b7EgIT0OJwP=wPk8BUD43J?UHXGB5`V6?N-X7GgIz6R{=bK;Ak5(Tf6 zOSEzqv6H?pDr2L$X%R(vi z%!=fb5pU}Q%l4WuW`KJo3p&|M@!?{a636JW=LZ8-YU;VM2~>xZ}T@k{r5!n`C?A$^nb zwL8ZTGB-&l9oN@Ur4^Y^4Cyr+PJh%;G1@dB0FSBAfA<0@!oYQ9QQ;8*3?=MYVhE6M z?;r)x;C_Z$>za@;A3wUv^F@VTzMG)?)=HR{Gpsk^@te8XB0W%@JE_+ZZx%{5WKxBF)_~?gpii8K4=UETlsWFQ@ z3;U_&S^LTfh8dsUg6yWu7J6zSUY}S2C2fj{(d{z7;Qr&fLz0WN6~pYyYg=*`RaVP# z-xS7zolD!ghHkc*b(o5KAlRDt%t;CaOJs^eDFS9@xmIQVQK4XDl09yjD)s(@ANMK0 zZA@bPMZ%k8n&UAUo@5rM2AW*Ql(gV1yBpEvX6rc}j~z2D>st>g_OykZIUW3qSnhnM zIUjfSsUfH!P@R}6pPL=#D)6(X{}CoxJorbFIHtk06RLwQ*2EOb z0p73EzI&5PdpDGo4{TN;yrcVLq6xR~rCN1$bx??d>FnkVKnT-U2jf#8cWf>+ z^05-j{BT)B9oKTSt4N!=ZDm|HrXNY!RNsUEqW z2=!wTNxK%qe5F$Pwe+0S?el9y&qKrd@q>Qm=pb#Au|Tza?Aj6X2=HMirDdEgnshIN z6@Il9EzRFq1`WNW!(Z5yf#?zsZ2ab$BNB=6+JkbjhT!HwayRZY9r|GtIW{Kxq2=L# zPCQFX!37IF&Ny0kh)M&3Urs;Pr0uKo33V9CNog0Xts3fggoC;-*gY}N~8V`r&0}$Y2KUh;eH@5oQCDw2L#<>9t@$9osFo${le#Ri+ z{F?if-7p>rdp^51y3Y@5u6=poLn=c~jFBD^nFD4%!av;E&)%!77Wx^#FT#>0!`brXq(mT>aiuFCk||(FFWqTp6IOW8o2A3N;64+ z?TP-)uw32)=CIOl>(4?`c*J z72O^`A)zOOjH`~_@Mlmmn9RNQ^DzL_{8LWD4G?ly2h*n>&?|~>2}=uUO1!Il@mA!u zcHugd4*7>P>Y3e5RmaB1(or8RY|-{dQ7XECnVmsib@PP3TS5dYV}NylJSo>n$afF;&Nrshr_ONoChXDE~Jv^UphDUq%Kq?biN#Z z^U{h6S?*7Y*0T*m69<}DinW9fQ_@v^Vas9N^r=3w(dD{Hd-RjlW;>|0sgHFGCMvZvZNxbU+Rg5Ud+$bE80bW0Ok z(7j};f$l;nvkCRqE~*dqb36%SHPqv7f&|JjaTZ>sRg1G?Av7qVWwM$g`sWqC&;es_ zw!x=t<|Q$O;>I&tvO6PAkVNI}W&f~oJT1y%iaT#emfKRZ=NKE-_;xb&J#(_dl)*(# z#ZF!+qw3Bw2Qo|Q0TCU`f+YuNe@*YI@-ox7tY5t?4T;MePa8B>@e$ru0OW_jHqG{n zq8*xf085-F4~=oMhQwA(zghgV3q}*}wsjH6aua?I{0nB} zzhgx*tR@|&8S*Q-SzfE{b3vrX$?!ga>;b$HSuG`7vflbV7K zMhS_R1;UnGe-yU`R=oR1Nw*>rCE!?xU=9|(KL@4v`Z~^s!xx;svW**j_ip*gc{VyN zMXIFNltSk=w^D*0Vs)zr7D>I3;{}B?GEkX;&kjW*qysP&6Zu9pUX_zr{j6fl`;ttn ze^pt&Hb_v6Kl{Df`9pys7h*OHk{lSB4FK^z4ZvR$^w4h(P@ZKV2kevtxY-XAOx}>R z=fLR!2o^Zv+0I$}j|XspQJ1_bKN}Is5v7pccYZvtEbkN5*s|Vu!C0M}6n2)Q&nlqz zmfog#^JNQa*0BF- z^Y#wlB?Qf{CTcF!_j2n`A}+wA0+hR7hG6IK-S&y|6E-3U+<7FUR9X3^mzv6!t9zt@ z7qyBix{;l|Zp>6*fE@4jbP}>3a+t2X>q}XYZu1gMg;!j4+<Wd-{>SiT^B(EJO@}uzu$c zJt$G0Wipk>_OtUVu*h378-2{CQtA7}dXC4==3VISkiTV9))JzNy{a0rSG|(GV)aK) z#{W5#%-42~+NI%|q-U92WBjcbC%M63T2NxuT#bzDFUEO}tLv|fZGarOS=s(Z1nD|T zh3oy`q?ulw?UGx5qLk39HXq!?K=^Zu#60HqJ9mFm{CRBcR4CwZYY&iVfJ`p3#7Y3* zF6YjygG8)`U}%u>r6$+7T$jVW&RPwLMR!iy%UaskLe0>qpw|_Dc8cSFUO73ds28UH z`Rkv<H6f zN`PTs4rqHdoJ&j!s-Y2OJ+cTfJA*Yg9pw-EA~Pj&MNi)%r}zURep3*OzX;^y?W(O| zn#okaN7^4RB8H&|(nUbK8TE;AZ_XqN-A_$=U}V)G_})7AVAY4iG`ifBxe-JZn7) ztXkdP8wb*IJ?$gG!|CaG81NLBbv$(#j}`4yQi~A83^%9+;O=SYl1G|G*VH4VCXt-#!6K`xp>t-r6=a?+Mk{ zBtPVUOzipj#XbCPmIUP?72aqH{G%;@_Q~hRdVKwb$2Xd9DBM^CT;vr9mt~zCMVPYTRKqCn2y|QnUyPqdK6WznbLwr49=EShMEPgl?Jb+SxFh zj({5ZHfA|+YR308Z|S)CyWfn>R*A$INuc>~lz0r@P-6`=Cps)Ju{rDeqPB+1RlunA zFWs^V1KxsiyWN~nAz11TpA54 zDE8V2K;fU)>x@i^Rcq4SYQ60Klk%b>Bv~c?#1;0N;til=Aw2W@qZ3Ocp7-_+0Zs0< zK!_YAbMy>b^8TjSb%Xslxgi-b!*baSjv}*6-9x>ZY`rvBjjmo9d&vOHRZl4f=T6=nfWtp!S{RV+ zN3T_FRbjoSM?bUN;uvRNesW{?rQHRV$ICT=4!3pZNcZy{PrNfzZlshWpi>swqL$we zwL>>!zA6c9*@Vw><)!i};8jA+RR5e$|I`e5ax(?XU6|A8>N^BpZs}6 z|C|;^R9??A|JBi-QT|_!N};W(`^Van`%eQ){r|@)hk#wy-(ET>VA&)et# literal 0 HcmV?d00001 From 747957bb40ce238d2ff72bb8cbf122eb2577c0e8 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Tue, 28 Jul 2020 02:59:00 +0430 Subject: [PATCH 65/75] [Hosting] Move to GenericHost (#24297) --- .../SampleStartups/StartupBlockingOnStart.cs | 19 ++++++--- .../StartupConfigureAddresses.cs | 20 +++++---- .../StartupExternallyControlled.cs | 16 +++++--- .../SampleStartups/StartupFullControl.cs | 41 +++++++++++-------- .../SampleStartups/StartupHelloWorld.cs | 16 +++++--- .../SampleStartups/StartupInjection.cs | 24 +++++++---- 6 files changed, 86 insertions(+), 50 deletions(-) diff --git a/src/Hosting/samples/SampleStartups/StartupBlockingOnStart.cs b/src/Hosting/samples/SampleStartups/StartupBlockingOnStart.cs index dca16710e9..fda2dffae3 100644 --- a/src/Hosting/samples/SampleStartups/StartupBlockingOnStart.cs +++ b/src/Hosting/samples/SampleStartups/StartupBlockingOnStart.cs @@ -1,9 +1,11 @@ using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; // Note that this sample will not run. It is only here to illustrate usage patterns. @@ -27,20 +29,25 @@ namespace SampleStartups } // Entry point for the application. - public static void Main(string[] args) + public static async Task Main(string[] args) { var config = new ConfigurationBuilder().AddCommandLine(args).Build(); - var host = new WebHostBuilder() - .UseConfiguration(config) - .UseKestrel() - .UseStartup() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseConfiguration(config) + .UseKestrel() + .UseStartup(); + }) .Build(); using (host) { - host.Start(); + await host.StartAsync(); Console.ReadLine(); + await host.StopAsync(); } } } diff --git a/src/Hosting/samples/SampleStartups/StartupConfigureAddresses.cs b/src/Hosting/samples/SampleStartups/StartupConfigureAddresses.cs index 294497bbf7..123fb56e46 100644 --- a/src/Hosting/samples/SampleStartups/StartupConfigureAddresses.cs +++ b/src/Hosting/samples/SampleStartups/StartupConfigureAddresses.cs @@ -1,7 +1,9 @@ +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; // Note that this sample will not run. It is only here to illustrate usage patterns. @@ -19,18 +21,22 @@ namespace SampleStartups } // Entry point for the application. - public static void Main(string[] args) + public static Task Main(string[] args) { var config = new ConfigurationBuilder().AddCommandLine(args).Build(); - var host = new WebHostBuilder() - .UseConfiguration(config) - .UseKestrel() - .UseStartup() - .UseUrls("http://localhost:5000", "http://localhost:5001") + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseConfiguration(config) + .UseKestrel() + .UseStartup() + .UseUrls("http://localhost:5000", "http://localhost:5001"); + }) .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Hosting/samples/SampleStartups/StartupExternallyControlled.cs b/src/Hosting/samples/SampleStartups/StartupExternallyControlled.cs index 296fcc0b0f..8a8523bdb9 100644 --- a/src/Hosting/samples/SampleStartups/StartupExternallyControlled.cs +++ b/src/Hosting/samples/SampleStartups/StartupExternallyControlled.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Hosting; // Note that this sample will not run. It is only here to illustrate usage patterns. @@ -11,7 +12,7 @@ namespace SampleStartups { public class StartupExternallyControlled : StartupBase { - private IWebHost _host; + private IHost _host; private readonly List _urls = new List(); // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -29,10 +30,15 @@ namespace SampleStartups public void Start() { - _host = new WebHostBuilder() - .UseKestrel() - .UseStartup() - .Start(_urls.ToArray()); + _host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseStartup() + .UseUrls(_urls.ToArray()); + }) + .Start(); } public async Task StopAsync() diff --git a/src/Hosting/samples/SampleStartups/StartupFullControl.cs b/src/Hosting/samples/SampleStartups/StartupFullControl.cs index 81a2605557..035efb5d1d 100644 --- a/src/Hosting/samples/SampleStartups/StartupFullControl.cs +++ b/src/Hosting/samples/SampleStartups/StartupFullControl.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; @@ -13,7 +14,7 @@ namespace SampleStartups { public class StartupFullControl { - public static void Main(string[] args) + public static Task Main(string[] args) { var config = new ConfigurationBuilder() .AddEnvironmentVariables(prefix: "ASPNETCORE_") @@ -21,30 +22,34 @@ namespace SampleStartups .AddCommandLine(args) .Build(); - var host = new WebHostBuilder() - .UseConfiguration(config) // Default set of configurations to use, may be subsequently overridden - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) // Override the content root with the current directory - .UseUrls("http://*:1000", "https://*:902") - .UseEnvironment(Environments.Development) - .UseWebRoot("public") + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseConfiguration(config) // Default set of configurations to use, may be subsequently overridden + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) // Override the content root with the current directory + .UseUrls("http://*:1000", "https://*:902") + .UseEnvironment(Environments.Development) + .UseWebRoot("public") + .Configure(app => + { + // Write the application inline, this won't call any startup class in the assembly + + app.Use(next => context => + { + return next(context); + }); + }); + }) .ConfigureServices(services => { // Configure services that the application can see services.AddSingleton(); }) - .Configure(app => - { - // Write the application inline, this won't call any startup class in the assembly - - app.Use(next => context => - { - return next(context); - }); - }) .Build(); - host.Run(); + return host.RunAsync(); } } diff --git a/src/Hosting/samples/SampleStartups/StartupHelloWorld.cs b/src/Hosting/samples/SampleStartups/StartupHelloWorld.cs index a02513d201..0af69a7bd1 100644 --- a/src/Hosting/samples/SampleStartups/StartupHelloWorld.cs +++ b/src/Hosting/samples/SampleStartups/StartupHelloWorld.cs @@ -1,6 +1,8 @@ +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Hosting; // Note that this sample will not run. It is only here to illustrate usage patterns. @@ -18,14 +20,18 @@ namespace SampleStartups } // Entry point for the application. - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel() - .UseStartup() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseStartup(); + }) .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Hosting/samples/SampleStartups/StartupInjection.cs b/src/Hosting/samples/SampleStartups/StartupInjection.cs index 163ac165a6..88703a8177 100644 --- a/src/Hosting/samples/SampleStartups/StartupInjection.cs +++ b/src/Hosting/samples/SampleStartups/StartupInjection.cs @@ -1,8 +1,10 @@ using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; // HostingStartup's in the primary assembly are run automatically. [assembly: HostingStartup(typeof(SampleStartups.StartupInjection))] @@ -17,18 +19,22 @@ namespace SampleStartups } // Entry point for the application. - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel() - // Each of these three sets ApplicationName to the current assembly, which is needed in order to - // scan the assembly for HostingStartupAttributes. - // .UseSetting(WebHostDefaults.ApplicationKey, "SampleStartups") - // .Configure(_ => { }) - .UseStartup() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + // Each of these three sets ApplicationName to the current assembly, which is needed in order to + // scan the assembly for HostingStartupAttributes. + // .UseSetting(WebHostDefaults.ApplicationKey, "SampleStartups") + // .Configure(_ => { }) + .UseStartup(); + }) .Build(); - host.Run(); + return host.RunAsync(); } } From 2243f3f1719e424f4024daefeb3e1d6120a44bf4 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Tue, 28 Jul 2020 12:32:46 +1200 Subject: [PATCH 66/75] Rename KeepAlivePingInterval to KeepAlivePingDelay (#24308) --- src/Servers/Kestrel/Core/src/Http2Limits.cs | 18 ++++++------- .../src/Internal/Http2/Http2Connection.cs | 4 +-- .../Http2/Http2KeepAliveTests.cs | 26 +++++++++---------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Http2Limits.cs b/src/Servers/Kestrel/Core/src/Http2Limits.cs index eccf7e0598..99329be0a1 100644 --- a/src/Servers/Kestrel/Core/src/Http2Limits.cs +++ b/src/Servers/Kestrel/Core/src/Http2Limits.cs @@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core private int _maxRequestHeaderFieldSize = (int)Http2PeerSettings.DefaultMaxFrameSize; private int _initialConnectionWindowSize = 1024 * 128; // Larger than the default 64kb, and larger than any one single stream. private int _initialStreamWindowSize = 1024 * 96; // Larger than the default 64kb - private TimeSpan _keepAlivePingInterval = TimeSpan.MaxValue; + private TimeSpan _keepAlivePingDelay = TimeSpan.MaxValue; private TimeSpan _keepAlivePingTimeout = TimeSpan.FromSeconds(20); /// @@ -147,18 +147,18 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core } /// - /// Gets or sets the keep alive ping interval. The server will send a keep alive ping to the client if it - /// doesn't receive any frames for this period of time. This property is used together with + /// Gets or sets the keep alive ping delay. The server will send a keep alive ping to the client if it + /// doesn't receive any frames on a connection for this period of time. This property is used together with /// to close broken connections. /// - /// Interval must be greater than or equal to 1 second. Set to to - /// disable the keep alive ping interval. + /// Delay value must be greater than or equal to 1 second. Set to to + /// disable the keep alive ping. /// Defaults to . /// /// - public TimeSpan KeepAlivePingInterval + public TimeSpan KeepAlivePingDelay { - get => _keepAlivePingInterval; + get => _keepAlivePingDelay; set { // Keep alive uses Kestrel's system clock which has a 1 second resolution. Time is greater or equal to clock resolution. @@ -167,13 +167,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core throw new ArgumentOutOfRangeException(nameof(value), CoreStrings.FormatArgumentTimeSpanGreaterOrEqual(Heartbeat.Interval)); } - _keepAlivePingInterval = value != Timeout.InfiniteTimeSpan ? value : TimeSpan.MaxValue; + _keepAlivePingDelay = value != Timeout.InfiniteTimeSpan ? value : TimeSpan.MaxValue; } } /// /// Gets or sets the keep alive ping timeout. Keep alive pings are sent when a period of inactivity exceeds - /// the configured value. The server will close the connection if it + /// the configured value. The server will close the connection if it /// doesn't receive any frames within the timeout. /// /// Timeout must be greater than or equal to 1 second. Set to to diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs index 28002d804a..136e8d3cf4 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs @@ -107,10 +107,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 var connectionWindow = (uint)http2Limits.InitialConnectionWindowSize; _inputFlowControl = new InputFlowControl(connectionWindow, connectionWindow / 2); - if (http2Limits.KeepAlivePingInterval != TimeSpan.MaxValue) + if (http2Limits.KeepAlivePingDelay != TimeSpan.MaxValue) { _keepAlive = new Http2KeepAlive( - http2Limits.KeepAlivePingInterval, + http2Limits.KeepAlivePingDelay, http2Limits.KeepAlivePingTimeout, context.ServiceContext.SystemClock); } diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2KeepAliveTests.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2KeepAliveTests.cs index 47176d32bc..71d2bcbbba 100644 --- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2KeepAliveTests.cs +++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2KeepAliveTests.cs @@ -12,9 +12,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests public class Http2KeepAliveTests : Http2TestBase { [Fact] - public async Task KeepAlivePingInterval_InfiniteTimeSpan_KeepAliveNotEnabled() + public async Task KeepAlivePingDelay_InfiniteTimeSpan_KeepAliveNotEnabled() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = Timeout.InfiniteTimeSpan; + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = Timeout.InfiniteTimeSpan; await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task KeepAlivePingTimeout_InfiniteTimeSpan_NoGoAway() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingTimeout = Timeout.InfiniteTimeSpan; await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -57,7 +57,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task IntervalExceeded_WithoutActivity_PingSent() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -80,7 +80,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task IntervalExceeded_WithActivity_NoPingSent() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -104,7 +104,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task IntervalNotExceeded_NoPingSent() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(5); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(5); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -122,7 +122,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task IntervalExceeded_MultipleTimes_PingsNotSentWhileAwaitingOnAck() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -146,7 +146,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task IntervalExceeded_MultipleTimes_PingSentAfterAck() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -185,7 +185,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task TimeoutExceeded_NoAck_GoAway() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingTimeout = TimeSpan.FromSeconds(3); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -217,7 +217,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task TimeoutExceeded_NonPingActivity_NoGoAway() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingTimeout = TimeSpan.FromSeconds(3); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -250,7 +250,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task IntervalExceeded_StreamStarted_NoPingSent() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); await InitializeConnectionAsync(_noopApplication).DefaultTimeout(); @@ -275,7 +275,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task IntervalExceeded_ConnectionFlowControlUsedUpThenPings_NoPingSent() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); // Reduce connection window size so that one stream can fill it _serviceContext.ServerOptions.Limits.Http2.InitialConnectionWindowSize = 65535; @@ -330,7 +330,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests [Fact] public async Task TimeoutExceeded_ConnectionFlowControlUsedUpThenPings_NoGoAway() { - _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1); + _serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1); // Reduce connection window size so that one stream can fill it _serviceContext.ServerOptions.Limits.Http2.InitialConnectionWindowSize = 65535; From 0437117cfb5bc91a34878fb962076bb05f4b8273 Mon Sep 17 00:00:00 2001 From: Youssef Victor <31348972+Youssef1313@users.noreply.github.com> Date: Tue, 28 Jul 2020 09:58:27 +0200 Subject: [PATCH 67/75] Remove extra abstract keyword (#24274) --- .../Identity/Pages/V4/Account/ResendEmailConfirmation.cshtml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/ResendEmailConfirmation.cshtml.cs b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/ResendEmailConfirmation.cshtml.cs index 559ce47bc5..d762777c5f 100644 --- a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/ResendEmailConfirmation.cshtml.cs +++ b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/ResendEmailConfirmation.cshtml.cs @@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal /// [AllowAnonymous] [IdentityDefaultUI(typeof(ResendEmailConfirmationModel<>))] - public abstract class ResendEmailConfirmationModel : PageModel + public class ResendEmailConfirmationModel : PageModel { /// /// This API supports the ASP.NET Core Identity default UI infrastructure and is not intended to be used From 085921305a64d89d52fdcf100f70d2d5a59e1765 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Tue, 28 Jul 2020 22:32:09 +0430 Subject: [PATCH 68/75] [IIS] Move to GenericHost (#24280) --- .../IIS/samples/NativeIISSample/Startup.cs | 20 +- .../test/IIS.Tests/Utilities/TestServer.cs | 41 +- .../samples/IISSample/Startup.cs | 16 +- .../test/Tests/IISExtensionTests.cs | 30 +- .../test/Tests/IISMiddlewareTests.cs | 484 +++++++++++------- 5 files changed, 360 insertions(+), 231 deletions(-) diff --git a/src/Servers/IIS/IIS/samples/NativeIISSample/Startup.cs b/src/Servers/IIS/IIS/samples/NativeIISSample/Startup.cs index 96c77e15cb..2535f3a247 100644 --- a/src/Servers/IIS/IIS/samples/NativeIISSample/Startup.cs +++ b/src/Servers/IIS/IIS/samples/NativeIISSample/Startup.cs @@ -3,6 +3,7 @@ using System; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -12,6 +13,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Server.IIS; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; namespace NativeIISSample { @@ -115,16 +117,20 @@ namespace NativeIISSample "WEBSOCKET_VERSION" }; - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel() - .UseIIS() - .UseIISIntegration() - .UseStartup() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseKestrel() + .UseIIS() + .UseIISIntegration() + .UseStartup(); + }) .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Servers/IIS/IIS/test/IIS.Tests/Utilities/TestServer.cs b/src/Servers/IIS/IIS/test/IIS.Tests/Utilities/TestServer.cs index 64415084d1..5943a18382 100644 --- a/src/Servers/IIS/IIS/test/IIS.Tests/Utilities/TestServer.cs +++ b/src/Servers/IIS/IIS/test/IIS.Tests/Utilities/TestServer.cs @@ -23,7 +23,7 @@ using Microsoft.Extensions.Logging; namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests { - public class TestServer: IDisposable, IStartup + public class TestServer : IDisposable { private const string InProcessHandlerDll = "aspnetcorev2_inprocess.dll"; private const string AspNetCoreModuleDll = "aspnetcorev2.dll"; @@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests public TestConnection CreateConnection() => new TestConnection(_currentPort); private static IISServerOptions _options; - private IWebHost _host; + private IHost _host; private string _appHostConfigPath; private int _currentPort; @@ -131,16 +131,24 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests private int Main(IntPtr argc, IntPtr argv) { - var builder = new WebHostBuilder() - .UseIIS() - .ConfigureServices(services => + _host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - services.Configure(options => options.MaxRequestBodySize = _options.MaxRequestBodySize); - services.AddSingleton(this); - services.AddSingleton(_loggerFactory); + webHostBuilder + .UseIIS() + .UseSetting(WebHostDefaults.ApplicationKey, typeof(TestServer).GetTypeInfo().Assembly.FullName) + .Configure(app => + { + app.Map("/start", builder => builder.Run(context => context.Response.WriteAsync("Done"))); + _appBuilder(app); + }) + .ConfigureServices(services => + { + services.Configure(options => options.MaxRequestBodySize = _options.MaxRequestBodySize); + services.AddSingleton(_loggerFactory); + }); }) - .UseSetting(WebHostDefaults.ApplicationKey, typeof(TestServer).GetTypeInfo().Assembly.FullName); - _host = builder.Build(); + .Build(); var doneEvent = new ManualResetEventSlim(); var lifetime = _host.Services.GetService(); @@ -167,17 +175,6 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests WebCoreLock.Release(); } - public IServiceProvider ConfigureServices(IServiceCollection services) - { - return services.BuildServiceProvider(); - } - - public void Configure(IApplicationBuilder app) - { - app.Map("/start", builder => builder.Run(context => context.Response.WriteAsync("Done"))); - _appBuilder(app); - } - private delegate int hostfxr_main_fn(IntPtr argc, IntPtr argv); [DllImport(HWebCoreDll)] @@ -195,7 +192,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests [DllImport(InProcessHandlerDll)] private static extern int set_main_handler(hostfxr_main_fn main); - [DllImport("kernel32", SetLastError=true, CharSet = CharSet.Ansi)] + [DllImport("kernel32", SetLastError = true, CharSet = CharSet.Ansi)] private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string lpFileName); private void Retry(Action func, int attempts) diff --git a/src/Servers/IIS/IISIntegration/samples/IISSample/Startup.cs b/src/Servers/IIS/IISIntegration/samples/IISSample/Startup.cs index f99b6ad729..401e4748ed 100644 --- a/src/Servers/IIS/IISIntegration/samples/IISSample/Startup.cs +++ b/src/Servers/IIS/IISIntegration/samples/IISSample/Startup.cs @@ -3,6 +3,7 @@ using System; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -10,6 +11,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Server.IISIntegration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace IISSample @@ -88,19 +90,23 @@ namespace IISSample }); } - public static void Main(string[] args) + public static Task Main(string[] args) { - var host = new WebHostBuilder() + var host = new HostBuilder() + .ConfigureWebHost(webHostBuidler => + { + webHostBuidler + .UseKestrel() + .UseStartup(); + }) .ConfigureLogging((_, factory) => { factory.AddConsole(); factory.AddFilter("Console", level => level >= LogLevel.Debug); }) - .UseKestrel() - .UseStartup() .Build(); - host.Run(); + return host.RunAsync(); } } } diff --git a/src/Servers/IIS/IISIntegration/test/Tests/IISExtensionTests.cs b/src/Servers/IIS/IISIntegration/test/Tests/IISExtensionTests.cs index 772fbde2c3..27e6404c3d 100644 --- a/src/Servers/IIS/IISIntegration/test/Tests/IISExtensionTests.cs +++ b/src/Servers/IIS/IISIntegration/test/Tests/IISExtensionTests.cs @@ -2,9 +2,11 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Xunit; namespace Microsoft.AspNetCore.Server.IISIntegration @@ -12,19 +14,27 @@ namespace Microsoft.AspNetCore.Server.IISIntegration public class IISExtensionTests { [Fact] - public void CallingUseIISIntegrationMultipleTimesWorks() + public async Task CallingUseIISIntegrationMultipleTimesWorks() { + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .UseIISIntegration() + .Configure(app => { }) + .UseTestServer(); + }) + .Build(); - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .UseIISIntegration() - .Configure(app => { }); - var server = new TestServer(builder); + var server = host.GetTestServer(); - var filters = server.Host.Services.GetServices() + await host.StartAsync(); + + var filters = server.Services.GetServices() .OfType(); Assert.Single(filters); diff --git a/src/Servers/IIS/IISIntegration/test/Tests/IISMiddlewareTests.cs b/src/Servers/IIS/IISIntegration/test/Tests/IISMiddlewareTests.cs index 890ce500e9..124b9b6c76 100644 --- a/src/Servers/IIS/IISIntegration/test/Tests/IISMiddlewareTests.cs +++ b/src/Servers/IIS/IISIntegration/test/Tests/IISMiddlewareTests.cs @@ -4,7 +4,6 @@ using System; using System.Net; using System.Net.Http; -using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; @@ -12,6 +11,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http.Features.Authentication; using Microsoft.AspNetCore.TestHost; using Microsoft.AspNetCore.Testing; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Xunit; @@ -25,21 +25,30 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var assertsExecuted = false; - var builder = new WebHostBuilder() - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.Run(context => - { - var auth = context.Features.Get(); - Assert.Null(auth); - assertsExecuted = true; - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + webHostBuilder + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => + { + var auth = context.Features.Get(); + Assert.Null(auth); + assertsExecuted = true; + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var req = new HttpRequestMessage(HttpMethod.Get, ""); req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -53,22 +62,31 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var assertsExecuted = false; - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.Run(context => - { - var auth = context.Features.Get(); - Assert.Null(auth); - assertsExecuted = true; - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => + { + var auth = context.Features.Get(); + Assert.Null(auth); + assertsExecuted = true; + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var req = new HttpRequestMessage(HttpMethod.Get, ""); var response = await server.CreateClient().SendAsync(req); @@ -85,23 +103,32 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var requestExecuted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var applicationStoppingFired = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", pathBase) - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - var appLifetime = app.ApplicationServices.GetRequiredService(); - appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", pathBase) + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); - app.Run(context => - { - requestExecuted.SetResult(0); - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + app.Run(context => + { + requestExecuted.SetResult(0); + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var request = new HttpRequestMessage(HttpMethod.Post, requestPath); request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -135,23 +162,32 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var requestExecuted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var applicationStoppingFired = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - var appLifetime = app.ApplicationServices.GetRequiredService(); - appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); - app.Run(context => - { - requestExecuted.SetResult(0); - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + app.Run(context => + { + requestExecuted.SetResult(0); + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var request = new HttpRequestMessage(method, "/iisintegration"); request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -171,23 +207,32 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var requestExecuted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var applicationStoppingFired = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - var appLifetime = app.ApplicationServices.GetRequiredService(); - appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); - app.Run(context => - { - requestExecuted.SetResult(0); - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + app.Run(context => + { + requestExecuted.SetResult(0); + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var request = new HttpRequestMessage(HttpMethod.Post, path); request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -207,23 +252,32 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var requestExecuted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var applicationStoppingFired = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - var appLifetime = app.ApplicationServices.GetRequiredService(); - appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.SetResult(0)); - app.Run(context => - { - requestExecuted.SetResult(0); - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + app.Run(context => + { + requestExecuted.SetResult(0); + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var request = new HttpRequestMessage(HttpMethod.Post, "/iisintegration"); request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -236,43 +290,63 @@ namespace Microsoft.AspNetCore.Server.IISIntegration } [Fact] - public void UrlDelayRegisteredAndPreferHostingUrlsSet() + public async Task UrlDelayRegisteredAndPreferHostingUrlsSet() { - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.Run(context => Task.FromResult(0)); - }); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => Task.FromResult(0)); + }); - Assert.Null(builder.GetSetting(WebHostDefaults.ServerUrlsKey)); - Assert.Null(builder.GetSetting(WebHostDefaults.PreferHostingUrlsKey)); + Assert.Null(webHostBuilder.GetSetting(WebHostDefaults.ServerUrlsKey)); + Assert.Null(webHostBuilder.GetSetting(WebHostDefaults.PreferHostingUrlsKey)); - // Adds a server and calls Build() - var server = new TestServer(builder); + webHostBuilder.UseTestServer(); + }) + .Build(); - Assert.Equal("http://127.0.0.1:12345", builder.GetSetting(WebHostDefaults.ServerUrlsKey)); - Assert.Equal("true", builder.GetSetting(WebHostDefaults.PreferHostingUrlsKey)); + var server = host.GetTestServer(); + + await host.StartAsync(); + + var configuration = host.Services.GetService(); + + Assert.Equal("http://127.0.0.1:12345", configuration[WebHostDefaults.ServerUrlsKey]); + Assert.Equal("true", configuration[WebHostDefaults.PreferHostingUrlsKey]); } [Fact] - public void PathBaseHiddenFromServer() + public async Task PathBaseHiddenFromServer() { - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/pathBase") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.Run(context => Task.FromResult(0)); - }); - new TestServer(builder); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/pathBase") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => Task.FromResult(0)); + }) + .UseTestServer(); + }) + .Build(); - Assert.Equal("http://127.0.0.1:12345", builder.GetSetting(WebHostDefaults.ServerUrlsKey)); + host.GetTestServer(); + + await host.StartAsync(); + + var configuration = host.Services.GetService(); + Assert.Equal("http://127.0.0.1:12345", configuration[WebHostDefaults.ServerUrlsKey]); } [Fact] @@ -280,21 +354,30 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var requestPathBase = string.Empty; var requestPath = string.Empty; - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/pathbase") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.Run(context => - { - requestPathBase = context.Request.PathBase.Value; - requestPath = context.Request.Path.Value; - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/pathbase") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => + { + requestPathBase = context.Request.PathBase.Value; + requestPath = context.Request.Path.Value; + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var request = new HttpRequestMessage(HttpMethod.Get, "/PathBase/Path"); request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -309,24 +392,33 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var assertsExecuted = false; - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() - .Configure(app => + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => { - app.Run(async context => - { - var auth = context.RequestServices.GetRequiredService(); - var windows = await auth.GetSchemeAsync(IISDefaults.AuthenticationScheme); - Assert.NotNull(windows); - Assert.Null(windows.DisplayName); - Assert.Equal("Microsoft.AspNetCore.Server.IISIntegration.AuthenticationHandler", windows.HandlerType.FullName); - assertsExecuted = true; - }); - }); - var server = new TestServer(builder); + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(async context => + { + var auth = context.RequestServices.GetRequiredService(); + var windows = await auth.GetSchemeAsync(IISDefaults.AuthenticationScheme); + Assert.NotNull(windows); + Assert.Null(windows.DisplayName); + Assert.Equal("Microsoft.AspNetCore.Server.IISIntegration.AuthenticationHandler", windows.HandlerType.FullName); + assertsExecuted = true; + }); + }) + .UseTestServer(); + }) + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var req = new HttpRequestMessage(HttpMethod.Get, ""); req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -342,11 +434,36 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var assertsExecuted = false; - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(async context => + { + var auth = context.RequestServices.GetService(); + Assert.NotNull(auth); + var windowsAuth = await auth.GetSchemeAsync(IISDefaults.AuthenticationScheme); + if (forward) + { + Assert.NotNull(windowsAuth); + Assert.Null(windowsAuth.DisplayName); + Assert.Equal("AuthenticationHandler", windowsAuth.HandlerType.Name); + } + else + { + Assert.Null(windowsAuth); + } + assertsExecuted = true; + }); + }) + .UseTestServer(); + }) .ConfigureServices(services => { services.Configure(options => @@ -354,27 +471,11 @@ namespace Microsoft.AspNetCore.Server.IISIntegration options.ForwardWindowsAuthentication = forward; }); }) - .Configure(app => - { - app.Run(async context => - { - var auth = context.RequestServices.GetService(); - Assert.NotNull(auth); - var windowsAuth = await auth.GetSchemeAsync(IISDefaults.AuthenticationScheme); - if (forward) - { - Assert.NotNull(windowsAuth); - Assert.Null(windowsAuth.DisplayName); - Assert.Equal("AuthenticationHandler", windowsAuth.HandlerType.Name); - } - else - { - Assert.Null(windowsAuth); - } - assertsExecuted = true; - }); - }); - var server = new TestServer(builder); + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var req = new HttpRequestMessage(HttpMethod.Get, ""); req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); @@ -390,11 +491,24 @@ namespace Microsoft.AspNetCore.Server.IISIntegration { var assertsExecuted = false; - var builder = new WebHostBuilder() - .UseSetting("TOKEN", "TestToken") - .UseSetting("PORT", "12345") - .UseSetting("APPL_PATH", "/") - .UseIISIntegration() + using var host = new HostBuilder() + .ConfigureWebHost(webHostBuilder => + { + webHostBuilder + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => + { + assertsExecuted = true; + return Task.FromResult(0); + }); + }) + .UseTestServer(); + }) .ConfigureServices(services => { services.Configure(options => @@ -402,15 +516,11 @@ namespace Microsoft.AspNetCore.Server.IISIntegration options.ForwardWindowsAuthentication = forward; }); }) - .Configure(app => - { - app.Run(context => - { - assertsExecuted = true; - return Task.FromResult(0); - }); - }); - var server = new TestServer(builder); + .Build(); + + var server = host.GetTestServer(); + + await host.StartAsync(); var req = new HttpRequestMessage(HttpMethod.Get, ""); req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); From 4aa5e03207a005d7310ba792c76f5339d74c3364 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 28 Jul 2020 11:21:33 -0700 Subject: [PATCH 69/75] Unquarantine Tests (#24295) * Unquarantine Tests --- .../test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs | 1 - src/Tools/dotnet-watch/test/MsBuildFileSetFactoryTest.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs b/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs index 0e2773406f..2283a00208 100644 --- a/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs +++ b/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs @@ -1495,7 +1495,6 @@ namespace Interop.FunctionalTests [Theory] [MemberData(nameof(SupportedSchemes))] - [QuarantinedTest] public async Task ConnectionWindowSize_Server(string scheme) { var requestFinished = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); diff --git a/src/Tools/dotnet-watch/test/MsBuildFileSetFactoryTest.cs b/src/Tools/dotnet-watch/test/MsBuildFileSetFactoryTest.cs index d3aee43cac..0d69f49d2e 100644 --- a/src/Tools/dotnet-watch/test/MsBuildFileSetFactoryTest.cs +++ b/src/Tools/dotnet-watch/test/MsBuildFileSetFactoryTest.cs @@ -221,7 +221,6 @@ namespace Microsoft.DotNet.Watcher.Tools.Tests } [Fact] - [QuarantinedTest] public async Task ProjectReferences_Graph() { var graph = new TestProjectGraph(_tempDir); From e225057370ee3997835da0abf4daf432e9ffe466 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Tue, 28 Jul 2020 18:22:44 -0700 Subject: [PATCH 70/75] Add missing .ConfigureAwait(false) to WebHost (#24390) --- src/Hosting/Hosting/src/Internal/WebHost.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Hosting/Hosting/src/Internal/WebHost.cs b/src/Hosting/Hosting/src/Internal/WebHost.cs index ae935412b4..58cfc933dd 100644 --- a/src/Hosting/Hosting/src/Internal/WebHost.cs +++ b/src/Hosting/Hosting/src/Internal/WebHost.cs @@ -383,7 +383,7 @@ namespace Microsoft.AspNetCore.Hosting switch (serviceProvider) { case IAsyncDisposable asyncDisposable: - await asyncDisposable.DisposeAsync(); + await asyncDisposable.DisposeAsync().ConfigureAwait(false); break; case IDisposable disposable: disposable.Dispose(); From 01e05359d644a1f68c1e26a196fc3370ec9ded49 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Wed, 29 Jul 2020 17:13:46 +0430 Subject: [PATCH 71/75] Dispose CTS in WebHost.StopAsync (#24399) --- src/Hosting/Hosting/src/Internal/WebHost.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Hosting/Hosting/src/Internal/WebHost.cs b/src/Hosting/Hosting/src/Internal/WebHost.cs index 58cfc933dd..1e69982a50 100644 --- a/src/Hosting/Hosting/src/Internal/WebHost.cs +++ b/src/Hosting/Hosting/src/Internal/WebHost.cs @@ -325,7 +325,8 @@ namespace Microsoft.AspNetCore.Hosting _logger.Shutdown(); - var timeoutToken = new CancellationTokenSource(Options.ShutdownTimeout).Token; + using var timeoutCTS = new CancellationTokenSource(Options.ShutdownTimeout); + var timeoutToken = timeoutCTS.Token; if (!cancellationToken.CanBeCanceled) { cancellationToken = timeoutToken; From 5e49fc336e4464711ff2a8db2e00b9bafb518c78 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 29 Jul 2020 14:49:50 +0100 Subject: [PATCH 72/75] In CSS scoping, support ::deep alongside other combinators (#24376) --- .../src/RewriteCssCommand.cs | 35 ++++++++++++-- .../test/RewriteCssCommandTest.cs | 48 +++++++++++++++++++ 2 files changed, 78 insertions(+), 5 deletions(-) diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Tools/src/RewriteCssCommand.cs b/src/Razor/Microsoft.AspNetCore.Razor.Tools/src/RewriteCssCommand.cs index 6369d3bc93..f9e33cae14 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Tools/src/RewriteCssCommand.cs +++ b/src/Razor/Microsoft.AspNetCore.Razor.Tools/src/RewriteCssCommand.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using Microsoft.Css.Parser.Parser; using Microsoft.Css.Parser.Tokens; @@ -18,6 +19,11 @@ namespace Microsoft.AspNetCore.Razor.Tools { internal class RewriteCssCommand : CommandBase { + private const string DeepCombinatorText = "::deep"; + private readonly static TimeSpan _regexTimeout = TimeSpan.FromSeconds(1); + private readonly static Regex _deepCombinatorRegex = new Regex($@"^{DeepCombinatorText}\s*", RegexOptions.None, _regexTimeout); + private readonly static Regex _trailingCombinatorRegex = new Regex(@"\s+[\>\+\~]$", RegexOptions.None, _regexTimeout); + public RewriteCssCommand(Application parent) : base(parent, "rewritecss") { @@ -145,12 +151,12 @@ namespace Microsoft.AspNetCore.Razor.Tools // If there's a deep combinator among the sequence of simple selectors, we consider that to signal // the end of the set of simple selectors for us to look at, plus we strip it out var allSimpleSelectors = selector.Children.OfType(); - var firstDeepCombinator = allSimpleSelectors.FirstOrDefault(s => IsDeepCombinator(s.Text)); + var firstDeepCombinator = allSimpleSelectors.FirstOrDefault(s => _deepCombinatorRegex.IsMatch(s.Text)); var lastSimpleSelector = allSimpleSelectors.TakeWhile(s => s != firstDeepCombinator).LastOrDefault(); if (lastSimpleSelector != null) { - Edits.Add(new InsertSelectorScopeEdit { Position = lastSimpleSelector.AfterEnd }); + Edits.Add(new InsertSelectorScopeEdit { Position = FindPositionBeforeTrailingCombinator(lastSimpleSelector) }); } else if (firstDeepCombinator != null) { @@ -162,13 +168,32 @@ namespace Microsoft.AspNetCore.Razor.Tools // Also remove the deep combinator if we matched one if (firstDeepCombinator != null) { - Edits.Add(new DeleteContentEdit { Position = firstDeepCombinator.Start, DeleteLength = firstDeepCombinator.Length }); + Edits.Add(new DeleteContentEdit { Position = firstDeepCombinator.Start, DeleteLength = DeepCombinatorText.Length }); } } - private static bool IsDeepCombinator(string simpleSelectorText) + private int FindPositionBeforeTrailingCombinator(SimpleSelector lastSimpleSelector) { - return string.Equals(simpleSelectorText, "::deep", StringComparison.Ordinal); + // For a selector like "a > ::deep b", the parser splits it as "a >", "::deep", "b". + // The place we want to insert the scope is right after "a", hence we need to detect + // if the simple selector ends with " >" or similar, and if so, insert before that. + var text = lastSimpleSelector.Text; + var lastChar = text.Length > 0 ? text[^1] : default; + switch (lastChar) + { + case '>': + case '+': + case '~': + var trailingCombinatorMatch = _trailingCombinatorRegex.Match(text); + if (trailingCombinatorMatch.Success) + { + var trailingCombinatorLength = trailingCombinatorMatch.Length; + return lastSimpleSelector.AfterEnd - trailingCombinatorLength; + } + break; + } + + return lastSimpleSelector.AfterEnd; } protected override void VisitAtDirective(AtDirective item) diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Tools/test/RewriteCssCommandTest.cs b/src/Razor/Microsoft.AspNetCore.Razor.Tools/test/RewriteCssCommandTest.cs index 57d8830a52..2c2d199f80 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Tools/test/RewriteCssCommandTest.cs +++ b/src/Razor/Microsoft.AspNetCore.Razor.Tools/test/RewriteCssCommandTest.cs @@ -91,6 +91,54 @@ namespace Microsoft.AspNetCore.Razor.Tools ", result); } + [Fact] + public void RespectsDeepCombinatorWithDirectDescendant() + { + // Arrange/act + var result = RewriteCssCommand.AddScopeToSelectors(@" + a > ::deep b { color: red; } + c ::deep > d { color: blue; } +", "TestScope"); + + // Assert + Assert.Equal(@" + a[TestScope] > b { color: red; } + c[TestScope] > d { color: blue; } +", result); + } + + [Fact] + public void RespectsDeepCombinatorWithAdjacentSibling() + { + // Arrange/act + var result = RewriteCssCommand.AddScopeToSelectors(@" + a + ::deep b { color: red; } + c ::deep + d { color: blue; } +", "TestScope"); + + // Assert + Assert.Equal(@" + a[TestScope] + b { color: red; } + c[TestScope] + d { color: blue; } +", result); + } + + [Fact] + public void RespectsDeepCombinatorWithGeneralSibling() + { + // Arrange/act + var result = RewriteCssCommand.AddScopeToSelectors(@" + a ~ ::deep b { color: red; } + c ::deep ~ d { color: blue; } +", "TestScope"); + + // Assert + Assert.Equal(@" + a[TestScope] ~ b { color: red; } + c[TestScope] ~ d { color: blue; } +", result); + } + [Fact] public void IgnoresMultipleDeepCombinators() { From f88034902a8761153aeb9c12658d7915b9d66853 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 29 Jul 2020 11:37:52 -0700 Subject: [PATCH 73/75] Don't render route component if OnNavigateAsync task in-progress (#24225) --- .../Components/src/Routing/Router.cs | 31 ++++++++++++------- .../test/E2ETest/Tests/RoutingTest.cs | 23 ++++++++++++++ .../RouterTest/TestRouterWithOnNavigate.razor | 17 +++++++++- 3 files changed, 59 insertions(+), 12 deletions(-) diff --git a/src/Components/Components/src/Routing/Router.cs b/src/Components/Components/src/Routing/Router.cs index ab95ee2c63..8470101904 100644 --- a/src/Components/Components/src/Routing/Router.cs +++ b/src/Components/Components/src/Routing/Router.cs @@ -152,6 +152,19 @@ namespace Microsoft.AspNetCore.Components.Routing internal virtual void Refresh(bool isNavigationIntercepted) { + // If an `OnNavigateAsync` task is currently in progress, then wait + // for it to complete before rendering. Note: because _previousOnNavigateTask + // is initialized to a CompletedTask on initialization, this will still + // allow first-render to complete successfully. + if (_previousOnNavigateTask.Status != TaskStatus.RanToCompletion) + { + if (Navigating != null) + { + _renderHandle.Render(Navigating); + } + return; + } + RefreshRouteTable(); var locationPath = NavigationManager.ToBaseRelativePath(_locationAbsolute); @@ -248,19 +261,15 @@ namespace Microsoft.AspNetCore.Components.Routing var previousTask = _previousOnNavigateTask; var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); _previousOnNavigateTask = tcs.Task; - try + + // And pass an indicator for the previous task to the currently running one. + var shouldRefresh = await RunOnNavigateAsync(path, previousTask); + tcs.SetResult(); + if (shouldRefresh) { - // And pass an indicator for the previous task to the currently running one. - var shouldRefresh = await RunOnNavigateAsync(path, previousTask); - if (shouldRefresh) - { - Refresh(isNavigationIntercepted); - } - } - finally - { - tcs.SetResult(); + Refresh(isNavigationIntercepted); } + } private void OnLocationChanged(object sender, LocationChangedEventArgs args) diff --git a/src/Components/test/E2ETest/Tests/RoutingTest.cs b/src/Components/test/E2ETest/Tests/RoutingTest.cs index 074e57d372..28fe0a1727 100644 --- a/src/Components/test/E2ETest/Tests/RoutingTest.cs +++ b/src/Components/test/E2ETest/Tests/RoutingTest.cs @@ -578,6 +578,29 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Assert.NotNull(errorUiElem); } + [Fact] + public void OnNavigate_DoesNotRenderWhileOnNavigateExecuting() + { + var app = Browser.MountTestComponent(); + + // Navigate to a route + SetUrlViaPushState("/WithParameters/name/Abc"); + + // Click the button to trigger a re-render + var button = app.FindElement(By.Id("trigger-rerender")); + button.Click(); + + // Assert that the parameter route didn't render + Browser.DoesNotExist(By.Id("test-info")); + + // Navigate to another page to cancel the previous `OnNavigateAsync` + // task and trigger a re-render on its completion + SetUrlViaPushState("/LongPage1"); + + // Confirm that the route was rendered + Browser.Equal("This is a long page you can scroll.", () => app.FindElement(By.Id("test-info")).Text); + } + private long BrowserScrollY { get => (long)((IJavaScriptExecutor)Browser).ExecuteScript("return window.scrollY"); diff --git a/src/Components/test/testassets/BasicTestApp/RouterTest/TestRouterWithOnNavigate.razor b/src/Components/test/testassets/BasicTestApp/RouterTest/TestRouterWithOnNavigate.razor index 5baa82fc00..7b0c289b56 100644 --- a/src/Components/test/testassets/BasicTestApp/RouterTest/TestRouterWithOnNavigate.razor +++ b/src/Components/test/testassets/BasicTestApp/RouterTest/TestRouterWithOnNavigate.razor @@ -1,5 +1,9 @@ @using Microsoft.AspNetCore.Components.Routing +@using System.Threading + + +
@@ -21,7 +25,8 @@ { { "LongPage1", new Func(TestLoadingPageShows) }, { "LongPage2", new Func(TestOnNavCancel) }, - { "Other", new Func(TestOnNavException) } + { "Other", new Func(TestOnNavException) }, + {"WithParameters/name/Abc", new Func(TestRefreshHandling)} }; private async Task OnNavigateAsync(NavigationContext args) @@ -50,4 +55,14 @@ await Task.CompletedTask; throw new Exception("This is an uncaught exception."); } + + public static async Task TestRefreshHandling(NavigationContext args) + { + await Task.Delay(Timeout.Infinite, args.CancellationToken); + } + + private void TriggerRerender() + { + Console.WriteLine("Nothing to see here, just an even to trigger a re-render..."); + } } From ae840db2ccde12eeac25f43326389411718247c1 Mon Sep 17 00:00:00 2001 From: Huei Feng <695979933@qq.com> Date: Thu, 30 Jul 2020 06:00:23 +0800 Subject: [PATCH 74/75] Add a readonly modifier to a missing readonly field (#24379) --- .../Kestrel/Core/src/Internal/Http3/Http3Connection.cs | 2 +- .../Kestrel/Core/src/Internal/Http3/Http3ControlStream.cs | 4 ++-- .../Kestrel/Core/src/Internal/Http3/Http3Stream.cs | 4 ++-- .../Core/src/Internal/Http3/QPack/DecoderStreamReader.cs | 2 +- .../Core/src/Internal/Http3/QPack/EncoderStreamReader.cs | 8 ++++---- .../Kestrel/Core/src/Internal/Infrastructure/Heartbeat.cs | 2 +- .../src/Internal/Infrastructure/ThreadPoolAwaitable.cs | 2 +- .../Core/src/Internal/KestrelServerOptionsSetup.cs | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Connection.cs index b0c85bfcdf..20a500a355 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Connection.cs @@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http3 private long _highestOpenedStreamId; // TODO lock to access private volatile bool _haveSentGoAway; private readonly object _sync = new object(); - private MultiplexedConnectionContext _multiplexedContext; + private readonly MultiplexedConnectionContext _multiplexedContext; private readonly Http3ConnectionContext _context; private readonly ISystemClock _systemClock; private readonly TimeoutControl _timeoutControl; diff --git a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3ControlStream.cs b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3ControlStream.cs index 0c89d21c0d..a8b0d8d7bc 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3ControlStream.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3ControlStream.cs @@ -20,9 +20,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http3 private const int EncoderStream = 2; private const int DecoderStream = 3; - private Http3FrameWriter _frameWriter; + private readonly Http3FrameWriter _frameWriter; private readonly Http3Connection _http3Connection; - private HttpConnectionContext _context; + private readonly HttpConnectionContext _context; private readonly Http3RawFrame _incomingFrame = new Http3RawFrame(); private volatile int _isClosed; private int _gracefulCloseInitiator; diff --git a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Stream.cs b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Stream.cs index c4004372bf..d8530a577a 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Stream.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Stream.cs @@ -32,8 +32,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http3 private static ReadOnlySpan TrailersBytes => new byte[8] { (byte)'t', (byte)'r', (byte)'a', (byte)'i', (byte)'l', (byte)'e', (byte)'r', (byte)'s' }; private static ReadOnlySpan ConnectBytes => new byte[7] { (byte)'C', (byte)'O', (byte)'N', (byte)'N', (byte)'E', (byte)'C', (byte)'T' }; - private Http3FrameWriter _frameWriter; - private Http3OutputProducer _http3Output; + private readonly Http3FrameWriter _frameWriter; + private readonly Http3OutputProducer _http3Output; private int _isClosed; private int _gracefulCloseInitiator; private readonly Http3StreamContext _context; diff --git a/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/DecoderStreamReader.cs b/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/DecoderStreamReader.cs index 6b53b79900..621714dac1 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/DecoderStreamReader.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/DecoderStreamReader.cs @@ -43,7 +43,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http3.QPack private const byte InsertCountIncrementPrefixMask = 0x3F; private const int InsertCountIncrementPrefix = 6; - private IntegerDecoder _integerDecoder = new IntegerDecoder(); + private readonly IntegerDecoder _integerDecoder = new IntegerDecoder(); private State _state; public DecoderStreamReader() diff --git a/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/EncoderStreamReader.cs b/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/EncoderStreamReader.cs index b235415902..2fd44021d3 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/EncoderStreamReader.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http3/QPack/EncoderStreamReader.cs @@ -76,15 +76,15 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http3.QPack private const byte HuffmanMask = 0x80; private bool _s; - private byte[] _stringOctets; - private byte[] _headerNameOctets; - private byte[] _headerValueOctets; + private readonly byte[] _stringOctets; + private readonly byte[] _headerNameOctets; + private readonly byte[] _headerValueOctets; private byte[] _headerName; private int _headerNameLength; private int _headerValueLength; private int _stringLength; private int _stringIndex; - private DynamicTable _dynamicTable = new DynamicTable(1000); // TODO figure out architecture. + private readonly DynamicTable _dynamicTable = new DynamicTable(1000); // TODO figure out architecture. private readonly IntegerDecoder _integerDecoder = new IntegerDecoder(); private State _state = State.Ready; diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Heartbeat.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Heartbeat.cs index e26a2961cb..0e42007907 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Heartbeat.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Heartbeat.cs @@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure private readonly IDebugger _debugger; private readonly IKestrelTrace _trace; private readonly TimeSpan _interval; - private Thread _timerThread; + private readonly Thread _timerThread; private volatile bool _stopped; public Heartbeat(IHeartbeatHandler[] callbacks, ISystemClock systemClock, IDebugger debugger, IKestrelTrace trace) diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ThreadPoolAwaitable.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ThreadPoolAwaitable.cs index 69f3cb48d5..b0db58a240 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ThreadPoolAwaitable.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ThreadPoolAwaitable.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 { internal class ThreadPoolAwaitable : ICriticalNotifyCompletion { - public static ThreadPoolAwaitable Instance = new ThreadPoolAwaitable(); + public static readonly ThreadPoolAwaitable Instance = new ThreadPoolAwaitable(); private ThreadPoolAwaitable() { diff --git a/src/Servers/Kestrel/Core/src/Internal/KestrelServerOptionsSetup.cs b/src/Servers/Kestrel/Core/src/Internal/KestrelServerOptionsSetup.cs index 0c7d0a375f..fd35a67b1d 100644 --- a/src/Servers/Kestrel/Core/src/Internal/KestrelServerOptionsSetup.cs +++ b/src/Servers/Kestrel/Core/src/Internal/KestrelServerOptionsSetup.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal { internal class KestrelServerOptionsSetup : IConfigureOptions { - private IServiceProvider _services; + private readonly IServiceProvider _services; public KestrelServerOptionsSetup(IServiceProvider services) { From cf728173d1de6c95ab441dcb86ca7185d4100ec0 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Wed, 29 Jul 2020 15:51:44 -0700 Subject: [PATCH 75/75] Quarantine failing test (#24415) * Quarantine failing test * Update DefaultControllerFactoryTest.cs --- .../Mvc.Core/test/Controllers/DefaultControllerFactoryTest.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Mvc/Mvc.Core/test/Controllers/DefaultControllerFactoryTest.cs b/src/Mvc/Mvc.Core/test/Controllers/DefaultControllerFactoryTest.cs index ec2770bb93..759cf3ff7e 100644 --- a/src/Mvc/Mvc.Core/test/Controllers/DefaultControllerFactoryTest.cs +++ b/src/Mvc/Mvc.Core/test/Controllers/DefaultControllerFactoryTest.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; +using Microsoft.AspNetCore.Testing; using Moq; using Xunit; @@ -186,6 +187,7 @@ namespace Microsoft.AspNetCore.Mvc.Controllers } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/24414")] public void DefaultControllerFactory_DelegatesDisposalToControllerActivator() { // Arrange