зеркало из https://github.com/aspnet/Mvc.git
MVC functional test cleanup part 1
- #3612 (subpart 1 of 2) - delete six sites and associated tests entirely - `ActionResultsWebSite` - `ActivatorWebSite` - `ControllerDiscoveryConventionsWebSite` - `LoggingWebSite` - `LowercaseUrlsWebSite` - `ModelBindingWebSite`, now covered in integration tests - remove now-unused `FilteredDefaultAssemblyProviderFixture`, `LoggingAssert` and `LoggingExtensions` - move six test web sites into `./samples` - `CustomRouteWebSite` -> `CustomRouteSample.Web` - `FormatFilterWebSite` -> `FormatFilterSample.Web` - `InlineConstraintsWebSite` -> `InlineConstraintSample.Web` (now singular) - `JsonPatchWebSite` -> `JsonPatchSample.Web` - `LocalizationWebSite` -> `LocalizationSample.Web` - `RazorEmbeddedViewsWebSite` -> `EmbeddedViewSample.Web` (no longer "Razor" and now singular) - do some cleanup: remove test dependencies, shorten sample controller names, use more attribute routing - correct "license" spelling in `ApplicationModelWebSite`
This commit is contained in:
Родитель
a5e4b91154
Коммит
19e6fb5719
|
@ -87,6 +87,18 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MvcSandbox", "samples\MvcSa
|
|||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "UrlHelperSample.Web", "samples\UrlHelperSample.Web\UrlHelperSample.Web.xproj", "{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "CustomRouteSample.Web", "samples\CustomRouteSample.Web\CustomRouteSample.Web.xproj", "{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "EmbeddedViewSample.Web", "samples\EmbeddedViewSample.Web\EmbeddedViewSample.Web.xproj", "{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "FormatFilterSample.Web", "samples\FormatFilterSample.Web\FormatFilterSample.Web.xproj", "{AC9BE567-540E-4C70-90C2-AAF021307A80}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "InlineConstraintSample.Web", "samples\InlineConstraintSample.Web\InlineConstraintSample.Web.xproj", "{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "JsonPatchSample.Web", "samples\JsonPatchSample.Web\JsonPatchSample.Web.xproj", "{DAB1252D-577C-4912-98BE-1A812BF83F86}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "LocalizationSample.Web", "samples\LocalizationSample.Web\LocalizationSample.Web.xproj", "{FCFE6024-2720-49B4-8257-9DBC6114F0F1}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -507,6 +519,78 @@ Global
|
|||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}.Release|x86.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|x86.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|x86.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|x86.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|x86.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -548,5 +632,11 @@ Global
|
|||
{9879B5D5-2325-4A81-B4DF-F279FE8FEEB4} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{14ED4476-9F24-4776-8417-EA6927F6C9C9} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
264
Mvc.sln
264
Mvc.sln
|
@ -29,10 +29,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Functi
|
|||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "BasicWebSite", "test\WebSites\BasicWebSite\BasicWebSite.xproj", "{34DF1487-12C6-476C-BE0A-F31DF1939AE5}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ActivatorWebSite", "test\WebSites\ActivatorWebSite\ActivatorWebSite.xproj", "{DB79BCBA-9538-4A53-87D9-77728E2BAA39}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "InlineConstraintsWebSite", "test\WebSites\InlineConstraintsWebSite\InlineConstraintsWebSite.xproj", "{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.TestConfiguration", "test\WebSites\Microsoft.AspNet.Mvc.TestConfiguration\Microsoft.AspNet.Mvc.TestConfiguration.xproj", "{680D75ED-601F-4D86-B01B-1072D0C31B8C}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RoutingWebSite", "test\WebSites\RoutingWebSite\RoutingWebSite.xproj", "{42CDBF4A-E238-4C0F-A416-44588363EB4C}"
|
||||
|
@ -43,8 +39,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RazorWebSite", "test\WebSit
|
|||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "FormatterWebSite", "test\WebSites\FormatterWebSite\FormatterWebSite.xproj", "{62735776-46FF-4170-9392-02E128A69B89}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ModelBindingWebSite", "test\WebSites\ModelBindingWebSite\ModelBindingWebSite.xproj", "{EE1AB716-F102-4CA3-AD2C-214A44B459A0}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FAD65E9C-3CF3-4F68-9757-C7358604030B}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
global.json = global.json
|
||||
|
@ -80,44 +74,28 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.TagHel
|
|||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "PrecompilationWebSite", "test\WebSites\PrecompilationWebSite\PrecompilationWebSite.xproj", "{59E1BE90-92C1-4D35-ADCC-B69F49077C81}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RazorEmbeddedViewsWebSite", "test\WebSites\RazorEmbeddedViewsWebSite\RazorEmbeddedViewsWebSite.xproj", "{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "CompositeViewEngineWebSite", "test\WebSites\CompositeViewEngineWebSite\CompositeViewEngineWebSite.xproj", "{A853B2BA-4449-4908-A416-5A3C027FC22B}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "HtmlGenerationWebSite", "test\WebSites\HtmlGenerationWebSite\HtmlGenerationWebSite.xproj", "{920F8A0E-6F7D-4BBE-84FF-840B89099BE6}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ActionResultsWebSite", "test\WebSites\ActionResultsWebSite\ActionResultsWebSite.xproj", "{0A6BB4C0-48D3-4E7F-952B-B8917345E075}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "LoggingWebSite", "test\WebSites\LoggingWebSite\LoggingWebSite.xproj", "{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ErrorPageMiddlewareWebSite", "test\WebSites\ErrorPageMiddlewareWebSite\ErrorPageMiddlewareWebSite.xproj", "{AD545A5B-2BA5-4314-88AC-FC2ACF2CC718}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ActionConstraintsWebSite", "test\WebSites\ActionConstraintsWebSite\ActionConstraintsWebSite.xproj", "{AF210F69-9D31-43AF-AC3A-CD366E252218}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "CustomRouteWebSite", "test\WebSites\CustomRouteWebSite\CustomRouteWebSite.xproj", "{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "XmlFormattersWebSite", "test\WebSites\XmlFormattersWebSite\XmlFormattersWebSite.xproj", "{C3123A70-41C4-4122-AD1C-D35DF8958DD7}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "FormatFilterWebSite", "test\WebSites\FormatFilterWebSite\FormatFilterWebSite.xproj", "{AC9BE567-540E-4C70-90C2-AAF021307A80}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ControllersFromServicesWebSite", "test\WebSites\ControllersFromServicesWebSite\ControllersFromServicesWebSite.xproj", "{983741B2-4424-4ED1-9B03-7675A67230C8}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ControllersFromServicesClassLibrary", "test\WebSites\ControllersFromServicesClassLibrary\ControllersFromServicesClassLibrary.xproj", "{551DC89E-2A13-4CF2-83D7-1ADD802443D5}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "UserClassLibrary", "test\WebSites\UserClassLibrary\UserClassLibrary.xproj", "{C651F432-4EBE-41A6-BAD2-3E07CCBA209C}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ControllerDiscoveryConventionsWebSite", "test\WebSites\ControllerDiscoveryConventionsWebSite\ControllerDiscoveryConventionsWebSite.xproj", "{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "LowercaseUrlsWebSite", "test\WebSites\LowercaseUrlsWebSite\LowercaseUrlsWebSite.xproj", "{BCDB13A6-7D6E-485E-8424-A156432B71AC}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.TestCommon", "test\Microsoft.AspNet.Mvc.TestCommon\Microsoft.AspNet.Mvc.TestCommon.xproj", "{F504357E-C2E1-4818-BA5C-9A2EAC25FEE5}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "CorsWebSite", "test\WebSites\CorsWebSite\CorsWebSite.xproj", "{94BA134D-04B3-48AA-BA55-5A4DB8640F2D}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "CorsMiddlewareWebSite", "test\WebSites\CorsMiddlewareWebSite\CorsMiddlewareWebSite.xproj", "{B42D4844-FFF8-4EC2-88D1-3AE95234D9EB}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "JsonPatchWebSite", "test\WebSites\JsonPatchWebSite\JsonPatchWebSite.xproj", "{DAB1252D-577C-4912-98BE-1A812BF83F86}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.IntegrationTests", "test\Microsoft.AspNet.Mvc.IntegrationTests\Microsoft.AspNet.Mvc.IntegrationTests.xproj", "{864FA09D-1E48-403A-A6C8-4F079D2A30F0}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Abstractions", "src\Microsoft.AspNet.Mvc.Abstractions\Microsoft.AspNet.Mvc.Abstractions.xproj", "{1154203C-7579-4525-906E-BC55268421C1}"
|
||||
|
@ -128,8 +106,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.ApiExp
|
|||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Abstractions.Test", "test\Microsoft.AspNet.Mvc.Abstractions.Test\Microsoft.AspNet.Mvc.Abstractions.Test.xproj", "{DA000953-7532-4DF5-8DB9-8143DF98D999}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "LocalizationWebSite", "test\WebSites\LocalizationWebSite\LocalizationWebSite.xproj", "{FCFE6024-2720-49B4-8257-9DBC6114F0F1}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AntiforgeryTokenWebSite", "test\WebSites\AntiforgeryTokenWebSite\AntiforgeryTokenWebSite.xproj", "{A353B17E-A940-4CE8-8BF9-179E24A9041F}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MvcMinimalSample.Web", "samples\MvcMinimalSample.Web\MvcMinimalSample.Web.xproj", "{F21E225B-190B-4DAA-8B0A-05986D231F56}"
|
||||
|
@ -164,6 +140,18 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MvcSandbox", "samples\MvcSa
|
|||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "UrlHelperSample.Web", "samples\UrlHelperSample.Web\UrlHelperSample.Web.xproj", "{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "CustomRouteSample.Web", "samples\CustomRouteSample.Web\CustomRouteSample.Web.xproj", "{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "EmbeddedViewSample.Web", "samples\EmbeddedViewSample.Web\EmbeddedViewSample.Web.xproj", "{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "FormatFilterSample.Web", "samples\FormatFilterSample.Web\FormatFilterSample.Web.xproj", "{AC9BE567-540E-4C70-90C2-AAF021307A80}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "InlineConstraintSample.Web", "samples\InlineConstraintSample.Web\InlineConstraintSample.Web.xproj", "{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "JsonPatchSample.Web", "samples\JsonPatchSample.Web\JsonPatchSample.Web.xproj", "{DAB1252D-577C-4912-98BE-1A812BF83F86}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "LocalizationSample.Web", "samples\LocalizationSample.Web\LocalizationSample.Web.xproj", "{FCFE6024-2720-49B4-8257-9DBC6114F0F1}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -264,26 +252,6 @@ Global
|
|||
{34DF1487-12C6-476C-BE0A-F31DF1939AE5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{34DF1487-12C6-476C-BE0A-F31DF1939AE5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{34DF1487-12C6-476C-BE0A-F31DF1939AE5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{680D75ED-601F-4D86-B01B-1072D0C31B8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{680D75ED-601F-4D86-B01B-1072D0C31B8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{680D75ED-601F-4D86-B01B-1072D0C31B8C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -334,16 +302,6 @@ Global
|
|||
{62735776-46FF-4170-9392-02E128A69B89}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{62735776-46FF-4170-9392-02E128A69B89}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{62735776-46FF-4170-9392-02E128A69B89}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C6E5AFFA-890A-448F-8DE3-878B1D3C9FC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C6E5AFFA-890A-448F-8DE3-878B1D3C9FC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C6E5AFFA-890A-448F-8DE3-878B1D3C9FC7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -494,18 +452,6 @@ Global
|
|||
{59E1BE90-92C1-4D35-ADCC-B69F49077C81}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{59E1BE90-92C1-4D35-ADCC-B69F49077C81}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{59E1BE90-92C1-4D35-ADCC-B69F49077C81}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A853B2BA-4449-4908-A416-5A3C027FC22B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A853B2BA-4449-4908-A416-5A3C027FC22B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A853B2BA-4449-4908-A416-5A3C027FC22B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -530,30 +476,6 @@ Global
|
|||
{920F8A0E-6F7D-4BBE-84FF-840B89099BE6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{920F8A0E-6F7D-4BBE-84FF-840B89099BE6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{920F8A0E-6F7D-4BBE-84FF-840B89099BE6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075}.Release|x86.Build.0 = Release|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AD545A5B-2BA5-4314-88AC-FC2ACF2CC718}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AD545A5B-2BA5-4314-88AC-FC2ACF2CC718}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AD545A5B-2BA5-4314-88AC-FC2ACF2CC718}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -578,18 +500,6 @@ Global
|
|||
{AF210F69-9D31-43AF-AC3A-CD366E252218}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{AF210F69-9D31-43AF-AC3A-CD366E252218}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{AF210F69-9D31-43AF-AC3A-CD366E252218}.Release|x86.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C3123A70-41C4-4122-AD1C-D35DF8958DD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C3123A70-41C4-4122-AD1C-D35DF8958DD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C3123A70-41C4-4122-AD1C-D35DF8958DD7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -602,18 +512,6 @@ Global
|
|||
{C3123A70-41C4-4122-AD1C-D35DF8958DD7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C3123A70-41C4-4122-AD1C-D35DF8958DD7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C3123A70-41C4-4122-AD1C-D35DF8958DD7}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|x86.Build.0 = Release|Any CPU
|
||||
{983741B2-4424-4ED1-9B03-7675A67230C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{983741B2-4424-4ED1-9B03-7675A67230C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{983741B2-4424-4ED1-9B03-7675A67230C8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -650,30 +548,6 @@ Global
|
|||
{C651F432-4EBE-41A6-BAD2-3E07CCBA209C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C651F432-4EBE-41A6-BAD2-3E07CCBA209C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C651F432-4EBE-41A6-BAD2-3E07CCBA209C}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE}.Release|x86.Build.0 = Release|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC}.Release|x86.Build.0 = Release|Any CPU
|
||||
{F504357E-C2E1-4818-BA5C-9A2EAC25FEE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F504357E-C2E1-4818-BA5C-9A2EAC25FEE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F504357E-C2E1-4818-BA5C-9A2EAC25FEE5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -709,18 +583,6 @@ Global
|
|||
{B42D4844-FFF8-4EC2-88D1-3AE95234D9EB}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{B42D4844-FFF8-4EC2-88D1-3AE95234D9EB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B42D4844-FFF8-4EC2-88D1-3AE95234D9EB}.Release|x86.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|x86.Build.0 = Release|Any CPU
|
||||
{864FA09D-1E48-403A-A6C8-4F079D2A30F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{864FA09D-1E48-403A-A6C8-4F079D2A30F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{864FA09D-1E48-403A-A6C8-4F079D2A30F0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -781,18 +643,6 @@ Global
|
|||
{DA000953-7532-4DF5-8DB9-8143DF98D999}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DA000953-7532-4DF5-8DB9-8143DF98D999}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DA000953-7532-4DF5-8DB9-8143DF98D999}.Release|x86.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A353B17E-A940-4CE8-8BF9-179E24A9041F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A353B17E-A940-4CE8-8BF9-179E24A9041F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A353B17E-A940-4CE8-8BF9-179E24A9041F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
|
@ -997,6 +847,78 @@ Global
|
|||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191}.Release|x86.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B}.Release|x86.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80}.Release|x86.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE}.Release|x86.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86}.Release|x86.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -1012,14 +934,11 @@ Global
|
|||
{16703B76-C9F7-4C75-AE6C-53D92E308E3C} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{323D0C04-B518-4A8F-8A8E-3546AD153D34} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{34DF1487-12C6-476C-BE0A-F31DF1939AE5} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{DB79BCBA-9538-4A53-87D9-77728E2BAA39} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{680D75ED-601F-4D86-B01B-1072D0C31B8C} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{42CDBF4A-E238-4C0F-A416-44588363EB4C} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{5F945B82-FE5F-425C-956C-8BC2F2020254} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{B07CAF59-11ED-40E3-A5DB-E1178F84FA78} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{62735776-46FF-4170-9392-02E128A69B89} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{EE1AB716-F102-4CA3-AD2C-214A44B459A0} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{C6E5AFFA-890A-448F-8DE3-878B1D3C9FC7} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{1976AC4A-FEA4-4587-A158-D9F79736D2B6} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{61061528-071E-424E-965A-07BCC2F02672} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
|
@ -1035,31 +954,22 @@ Global
|
|||
{B2347320-308E-4D2B-AEC8-005DFA68B0C9} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
|
||||
{860119ED-3DB1-424D-8D0A-30132A8A7D96} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{59E1BE90-92C1-4D35-ADCC-B69F49077C81} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{A853B2BA-4449-4908-A416-5A3C027FC22B} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{920F8A0E-6F7D-4BBE-84FF-840B89099BE6} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{0A6BB4C0-48D3-4E7F-952B-B8917345E075} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{0AD78AB5-D67C-49BC-81B1-0C51BFA82B5E} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{AD545A5B-2BA5-4314-88AC-FC2ACF2CC718} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{AF210F69-9D31-43AF-AC3A-CD366E252218} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{C3123A70-41C4-4122-AD1C-D35DF8958DD7} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{983741B2-4424-4ED1-9B03-7675A67230C8} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{551DC89E-2A13-4CF2-83D7-1ADD802443D5} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{C651F432-4EBE-41A6-BAD2-3E07CCBA209C} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{A19022EF-9BA3-4349-94E4-F48E13E1C8AE} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{BCDB13A6-7D6E-485E-8424-A156432B71AC} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{F504357E-C2E1-4818-BA5C-9A2EAC25FEE5} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{94BA134D-04B3-48AA-BA55-5A4DB8640F2D} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{B42D4844-FFF8-4EC2-88D1-3AE95234D9EB} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{864FA09D-1E48-403A-A6C8-4F079D2A30F0} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{1154203C-7579-4525-906E-BC55268421C1} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
|
||||
{A2B72833-5D70-4C42-AE85-E0319926FB8A} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
|
||||
{4C2AD8AB-8AC0-46C4-80C6-C5577C7255F6} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{DA000953-7532-4DF5-8DB9-8143DF98D999} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{A353B17E-A940-4CE8-8BF9-179E24A9041F} = {16703B76-C9F7-4C75-AE6C-53D92E308E3C}
|
||||
{F21E225B-190B-4DAA-8B0A-05986D231F56} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{3F8B8FC1-9FE4-4788-8991-367113E8D7AD} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
|
||||
|
@ -1077,5 +987,11 @@ Global
|
|||
{9879B5D5-2325-4A81-B4DF-F279FE8FEEB4} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
|
||||
{14ED4476-9F24-4776-8417-EA6927F6C9C9} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{73F095D2-D0BD-4D03-BC17-D7A5EF0C0191} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{364EC3C6-C9DB-45E0-A0F2-1EE61E4B429B} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{B18ADE62-35DE-4A06-8E1D-EDD6245F7F4D} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{AC9BE567-540E-4C70-90C2-AAF021307A80} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{EA34877F-1AC1-42B7-B4E6-15A093F40CAE} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{DAB1252D-577C-4912-98BE-1A812BF83F86} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
{FCFE6024-2720-49B4-8257-9DBC6114F0F1} = {DAAE4C74-D06F-4874-A166-33305D2643CE}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace CustomRouteWebSite.Controllers.Canada
|
||||
namespace CustomRouteSample.Web.Controllers.Canada
|
||||
{
|
||||
[Locale("en-CA")]
|
||||
public class CustomRoute_ProductsController : Controller
|
||||
public class ProductsController : Controller
|
||||
{
|
||||
public string Index()
|
||||
{
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace CustomRouteWebSite.Controllers
|
||||
namespace CustomRouteSample.Web.Controllers
|
||||
{
|
||||
public class CustomRoute_OrdersControlller : Controller
|
||||
public class OrdersControlller : Controller
|
||||
{
|
||||
[HttpGet("CustomRoute_Orders/{id}")]
|
||||
[HttpGet("Orders/{id}")]
|
||||
public string Index(int id)
|
||||
{
|
||||
return "Hello from " + RouteData.Values["locale"] + ".";
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace CustomRouteWebSite.Controllers.Spain
|
||||
namespace CustomRouteSample.Web.Controllers.Spain
|
||||
{
|
||||
[Locale("es-ES")]
|
||||
public class CustomRoute_ProductsController : Controller
|
||||
public class ProductsController : Controller
|
||||
{
|
||||
public string Index()
|
||||
{
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace CustomRouteWebSite.Controllers.US
|
||||
namespace CustomRouteSample.Web.Controllers.US
|
||||
{
|
||||
[Locale("en-US")]
|
||||
public class CustomRoute_ProductsController : Controller
|
||||
public class ProductsController : Controller
|
||||
{
|
||||
public string Index()
|
||||
{
|
|
@ -7,8 +7,8 @@
|
|||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>364ec3c6-c9db-45e0-a0f2-1ee61e4b429b</ProjectGuid>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc.Infrastructure;
|
||||
|
||||
namespace CustomRouteWebSite
|
||||
namespace CustomRouteSample.Web
|
||||
{
|
||||
public class LocaleAttribute : RouteConstraintAttribute
|
||||
{
|
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||
using Microsoft.AspNet.Http;
|
||||
using Microsoft.AspNet.Routing;
|
||||
|
||||
namespace CustomRouteWebSite
|
||||
namespace CustomRouteSample.Web
|
||||
{
|
||||
public class LocalizedRoute : IRouter
|
||||
{
|
|
@ -4,7 +4,7 @@
|
|||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace CustomRouteWebSite
|
||||
namespace CustomRouteSample.Web
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
|
@ -16,8 +16,6 @@ namespace CustomRouteWebSite
|
|||
|
||||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
app.UseCultureReplacer();
|
||||
|
||||
app.UseMvc(routes =>
|
||||
{
|
||||
routes.DefaultHandler = new LocalizedRoute(routes.DefaultHandler);
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"commands": {
|
||||
"web": "Microsoft.AspNet.Server.Kestrel",
|
||||
"weblistener": "Microsoft.AspNet.Server.WebListener"
|
||||
},
|
||||
"dependencies": {
|
||||
"Microsoft.AspNet.Mvc": "6.0.0-*",
|
||||
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
|
||||
"Microsoft.AspNet.Server.WebListener": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"dnx451": { },
|
||||
"dnxcore50": { }
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
CustomRouteWebSite
|
||||
CustomRouteSample.Web
|
||||
===
|
||||
|
||||
This web site illustrates how a custom route injects route data based on the user.
|
||||
This web site illustrates how a custom route injects route data based on a "User" header.
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
|
||||
</handlers>
|
||||
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace RazorEmbeddedViewsWebSite.Controllers
|
||||
namespace EmbeddedViewSample.Web.Controllers
|
||||
{
|
||||
[Area("Restricted")]
|
||||
public class RazorEmbeddedViews_AdminController : Controller
|
||||
public class AdminController : Controller
|
||||
{
|
||||
public IActionResult Login()
|
||||
{
|
|
@ -3,13 +3,19 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace LoggingWebSite.Controllers
|
||||
namespace EmbeddedViewSample.Web
|
||||
{
|
||||
public class HomeController : Controller
|
||||
{
|
||||
// Interactive home page.
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult EchoActionUrl()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
<html>
|
||||
<head><title>Home page</title></head>
|
||||
<body>
|
||||
<ul>
|
||||
<li>@Html.ActionLink(
|
||||
linkText: "Administrator login",
|
||||
actionName: "Login",
|
||||
controllerName: "Admin",
|
||||
routeValues: new { area = "Restricted" })</li>
|
||||
<li>@Html.ActionLink(linkText: "Echo action", actionName: "EchoActionUrl")</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
|
@ -7,8 +7,8 @@
|
|||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>b18ade62-35de-4a06-8e1d-edd6245f7f4d</ProjectGuid>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
|
@ -7,7 +7,7 @@ using Microsoft.AspNet.FileProviders;
|
|||
using Microsoft.AspNet.Mvc.Razor;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace RazorEmbeddedViewsWebSite
|
||||
namespace EmbeddedViewSample.Web
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
|
@ -19,20 +19,22 @@ namespace RazorEmbeddedViewsWebSite
|
|||
|
||||
services.Configure<RazorViewEngineOptions>(options =>
|
||||
{
|
||||
options.FileProvider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, "RazorEmbeddedViewsWebSite.EmbeddedResources");
|
||||
// Base namespace matches the resources added to the assembly from the EmbeddedResources folder.
|
||||
options.FileProvider = new EmbeddedFileProvider(
|
||||
GetType().GetTypeInfo().Assembly,
|
||||
baseNamespace: "EmbeddedViewSample.Web.EmbeddedResources");
|
||||
});
|
||||
}
|
||||
|
||||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
app.UseCultureReplacer();
|
||||
|
||||
app.UseMvc(routes =>
|
||||
{
|
||||
routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action}");
|
||||
routes.MapRoute("default",
|
||||
"{controller}/{action}/{id?}",
|
||||
new { controller = "Home", action = "Index" });
|
||||
routes.MapRoute(
|
||||
"default",
|
||||
"{controller}/{action}/{id?}",
|
||||
new { controller = "Home", action = "Index" });
|
||||
});
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"commands": {
|
||||
"web": "Microsoft.AspNet.Server.Kestrel",
|
||||
"weblistener": "Microsoft.AspNet.Server.WebListener"
|
||||
},
|
||||
"resource": "EmbeddedResources/**",
|
||||
"dependencies": {
|
||||
"Microsoft.AspNet.FileProviders.Embedded": "1.0.0-*",
|
||||
"Microsoft.AspNet.Mvc": "6.0.0-*",
|
||||
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
|
||||
"Microsoft.AspNet.Server.WebListener": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"dnx451": { },
|
||||
"dnxcore50": { }
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
RazorEmbeddedViewsWebSite
|
||||
EmbeddedViewSample.Web
|
||||
===
|
||||
|
||||
This web site illustrates use cases for `RazorViewEngineOptions.FileProvider`.
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
|
||||
</handlers>
|
||||
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -3,17 +3,20 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace FormatFilterWebSite
|
||||
namespace FormatFilterSample.Web
|
||||
{
|
||||
[FormatFilter]
|
||||
public class FormatFilterController : Controller
|
||||
{
|
||||
{
|
||||
[Route("[controller]/[action]/{id}.{format?}")]
|
||||
[Route("[controller]/[action].{format}")]
|
||||
public Product GetProduct(int id = 0)
|
||||
{
|
||||
return new Product() { SampleInt = id };
|
||||
}
|
||||
|
||||
[Produces("application/custom", "application/json", "text/json")]
|
||||
[Route("[controller]/[action]/{id}.{format}")]
|
||||
public Product ProducesMethod(int id)
|
||||
{
|
||||
return new Product() { SampleInt = id };
|
|
@ -3,15 +3,16 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace FormatFilterWebSite
|
||||
namespace FormatFilterSample.Web
|
||||
{
|
||||
[Produces("application/custom_ProducesController")]
|
||||
[Produces("application/controller")]
|
||||
[Route("[controller]/[action]")]
|
||||
public class ProducesOverrideController
|
||||
{
|
||||
[Produces("application/ProducesMethod")]
|
||||
[Produces("application/custom")]
|
||||
public string ReturnClassName()
|
||||
{
|
||||
return "ProducesOverrideController";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,12 +7,10 @@ using Microsoft.AspNet.Http;
|
|||
using Microsoft.AspNet.Mvc.Formatters;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
|
||||
namespace FormatFilterWebSite
|
||||
namespace FormatFilterSample.Web
|
||||
{
|
||||
public class CustomFormatter : OutputFormatter
|
||||
{
|
||||
public string ContentType { get; private set; }
|
||||
|
||||
public CustomFormatter(string contentType)
|
||||
{
|
||||
ContentType = contentType;
|
||||
|
@ -20,22 +18,29 @@ namespace FormatFilterWebSite
|
|||
SupportedEncodings.Add(Encoding.GetEncoding("utf-8"));
|
||||
}
|
||||
|
||||
public string ContentType { get; }
|
||||
|
||||
public override bool CanWriteResult(OutputFormatterCanWriteContext context)
|
||||
{
|
||||
if (base.CanWriteResult(context))
|
||||
{
|
||||
var actionReturn = context.Object as Product;
|
||||
if (actionReturn != null)
|
||||
if (context.Object is Product)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (context.Object is string)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override async Task WriteResponseBodyAsync(OutputFormatterWriteContext context)
|
||||
{
|
||||
var response = context.HttpContext.Response;
|
||||
var response = context.HttpContext.Response;
|
||||
await response.WriteAsync(context.Object.ToString());
|
||||
}
|
||||
}
|
|
@ -7,8 +7,8 @@
|
|||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>ac9be567-540e-4c70-90c2-aaf021307a80</ProjectGuid>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
|
@ -0,0 +1,15 @@
|
|||
// 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 FormatFilterSample.Web
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
public int SampleInt { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "SampleInt:" + SampleInt;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
using Microsoft.AspNet.Routing;
|
||||
using Microsoft.AspNet.Mvc.Formatters;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
|
||||
namespace FormatFilterWebSite
|
||||
namespace FormatFilterSample.Web
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
|
@ -21,6 +21,7 @@ namespace FormatFilterWebSite
|
|||
|
||||
var customFormatter = new CustomFormatter("application/custom");
|
||||
options.OutputFormatters.Add(customFormatter);
|
||||
options.OutputFormatters.RemoveType<StringOutputFormatter>();
|
||||
|
||||
options.FormatterMappings.SetMediaTypeMappingForFormat(
|
||||
"custom",
|
||||
|
@ -30,18 +31,7 @@ namespace FormatFilterWebSite
|
|||
|
||||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
app.UseCultureReplacer();
|
||||
|
||||
app.UseMvc(routes =>
|
||||
{
|
||||
routes.MapRoute("formatroute",
|
||||
"{controller}/{action}/{id}.{format?}",
|
||||
new { controller = "Home", action = "Index" });
|
||||
|
||||
routes.MapRoute("optionalroute",
|
||||
"{controller}/{action}.{format?}",
|
||||
new { controller = "Home", action = "Index" });
|
||||
});
|
||||
app.UseMvc();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"commands": {
|
||||
"web": "Microsoft.AspNet.Server.Kestrel",
|
||||
"weblistener": "Microsoft.AspNet.Server.WebListener"
|
||||
},
|
||||
"dependencies": {
|
||||
"Microsoft.AspNet.Mvc": "6.0.0-*",
|
||||
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
|
||||
"Microsoft.AspNet.Server.WebListener": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"dnx451": { },
|
||||
"dnxcore50": { }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
FormatFilterSample.Web
|
||||
===
|
||||
|
||||
This web site illustrates in depth the process of using new feature URL Media header mappings. It demonstrates adding
|
||||
URL formats and content type mappings and using them. It also shows how routes need to change for this feature to work.
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
|
||||
</handlers>
|
||||
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -4,11 +4,10 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using Microsoft.AspNet.Http;
|
||||
using Microsoft.AspNet.Routing;
|
||||
|
||||
namespace InlineConstraintsWebSite.Constraints
|
||||
namespace InlineConstraintSample.Web.Constraints
|
||||
{
|
||||
public class IsbnDigitScheme10Constraint : IRouteConstraint
|
||||
{
|
|
@ -7,7 +7,7 @@ using System.Linq;
|
|||
using Microsoft.AspNet.Http;
|
||||
using Microsoft.AspNet.Routing;
|
||||
|
||||
namespace InlineConstraintsWebSite.Constraints
|
||||
namespace InlineConstraintSample.Web.Constraints
|
||||
{
|
||||
public class IsbnDigitScheme13Constraint : IRouteConstraint
|
||||
{
|
|
@ -3,10 +3,13 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace InlineConstraints.Controllers
|
||||
namespace InlineConstraintSample.Web.Controllers
|
||||
{
|
||||
public class HomeController : Controller
|
||||
{
|
||||
[Route("")]
|
||||
[Route("[controller]")]
|
||||
[Route("[controller]/[action]")]
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View();
|
|
@ -0,0 +1,16 @@
|
|||
// 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.AspNet.Mvc;
|
||||
|
||||
namespace InlineConstraintSample.Web.Controllers
|
||||
{
|
||||
public class Isbn10Controller : Controller
|
||||
{
|
||||
[Route("book/[action]/{isbnNumber:IsbnDigitScheme10(true)}")]
|
||||
public string Index(string isbnNumber)
|
||||
{
|
||||
return "10 Digit ISBN Number " + isbnNumber;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
// 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.AspNet.Mvc;
|
||||
|
||||
namespace InlineConstraintSample.Web.Controllers
|
||||
{
|
||||
[Route("book/[action]")]
|
||||
public class Isbn13Controller : Controller
|
||||
{
|
||||
[HttpGet("{isbnNumber:IsbnDigitScheme13}")]
|
||||
public string Index(string isbnNumber)
|
||||
{
|
||||
return "13 Digit ISBN Number " + isbnNumber;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,15 +1,15 @@
|
|||
// 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.AspNet.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace InlineConstraintsWebSite.Controllers
|
||||
namespace InlineConstraintSample.Web.Controllers
|
||||
{
|
||||
[Route("products/[action]")]
|
||||
public class InlineConstraints_ProductsController : Controller
|
||||
public class ProductsController : Controller
|
||||
{
|
||||
public IDictionary<string, object> Index()
|
||||
{
|
||||
|
@ -51,7 +51,7 @@ namespace InlineConstraintsWebSite.Controllers
|
|||
{
|
||||
return RouteData.Values;
|
||||
}
|
||||
|
||||
|
||||
[HttpGet("{manId:int:min(10)?}")]
|
||||
public IDictionary<string, object> GetProductByManufacturerId(int manId)
|
||||
{
|
|
@ -1,19 +1,21 @@
|
|||
// 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.AspNet.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace InlineConstraintsWebSite.Controllers
|
||||
namespace InlineConstraintSample.Web.Controllers
|
||||
{
|
||||
public class InlineConstraints_StoreController : Controller
|
||||
public class StoreController : Controller
|
||||
{
|
||||
[Route("store/[action]/{id:guid?}")]
|
||||
public IDictionary<string, object> GetStoreById(Guid id)
|
||||
{
|
||||
return RouteData.Values;
|
||||
}
|
||||
|
||||
[Route("store/[action]/{location:alpha:minlength(3):maxlength(10)}")]
|
||||
public IDictionary<string, object> GetStoreByLocation(string location)
|
||||
{
|
||||
return RouteData.Values;
|
|
@ -3,10 +3,11 @@
|
|||
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace InlineConstraints.Controllers
|
||||
namespace InlineConstraintSample.Web.Controllers
|
||||
{
|
||||
public class UsersController : Controller
|
||||
{
|
||||
[Route("constant-prefix/[controller]")]
|
||||
public IActionResult Index()
|
||||
{
|
||||
return Content("Users.Index");
|
|
@ -7,8 +7,8 @@
|
|||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>ea34877f-1ac1-42b7-b4e6-15a093f40cae</ProjectGuid>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
|
@ -0,0 +1,50 @@
|
|||
// 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 InlineConstraintSample.Web.Constraints;
|
||||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.AspNet.Localization;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace InlineConstraintSample.Web
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
// Set up application services
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.ConfigureRouting(
|
||||
routeOptions => routeOptions.ConstraintMap.Add(
|
||||
"IsbnDigitScheme10",
|
||||
typeof(IsbnDigitScheme10Constraint)));
|
||||
|
||||
services.ConfigureRouting(
|
||||
routeOptions => routeOptions.ConstraintMap.Add(
|
||||
"IsbnDigitScheme13",
|
||||
typeof(IsbnDigitScheme10Constraint)));
|
||||
|
||||
// Update an existing constraint from ConstraintMap for test purpose.
|
||||
services.ConfigureRouting(
|
||||
routeOptions =>
|
||||
{
|
||||
if (routeOptions.ConstraintMap.ContainsKey("IsbnDigitScheme13"))
|
||||
{
|
||||
routeOptions.ConstraintMap["IsbnDigitScheme13"] = typeof(IsbnDigitScheme13Constraint);
|
||||
}
|
||||
});
|
||||
|
||||
// Add MVC services to the services container
|
||||
services.AddMvc();
|
||||
}
|
||||
|
||||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
// Ignore ambient and client locale. Use same values as ReplaceCultureAttribute / CultureReplacerMiddleware.
|
||||
var localizationOptions = new RequestLocalizationOptions();
|
||||
localizationOptions.RequestCultureProviders.Clear();
|
||||
app.UseRequestLocalization(localizationOptions, new RequestCulture("en-GB", "en-US"));
|
||||
|
||||
app.UseMvc();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"commands": {
|
||||
"web": "Microsoft.AspNet.Server.Kestrel",
|
||||
"weblistener": "Microsoft.AspNet.Server.WebListener"
|
||||
},
|
||||
"dependencies": {
|
||||
"Microsoft.AspNet.Mvc": "6.0.0-*",
|
||||
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
|
||||
"Microsoft.AspNet.Server.WebListener": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"dnx451": { },
|
||||
"dnxcore50": { }
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
InlineConstraintsWebSite
|
||||
InlineConstraintSample.Web
|
||||
===
|
||||
|
||||
This web site illustrates how to use inline route constraints with traditional
|
||||
routes. The startup class in its configure method reads the routes which are added to configuration by the
|
||||
This web site illustrates how to use inline route constraints with traditional
|
||||
routes. The startup class in its configure method reads the routes which are added to configuration by the
|
||||
test methods.
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
|
||||
</handlers>
|
||||
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -2,14 +2,14 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using JsonPatchWebSite.Models;
|
||||
using JsonPatchSample.Web.Models;
|
||||
using Microsoft.AspNet.JsonPatch;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
|
||||
namespace JsonPatchWebSite.Controllers
|
||||
namespace JsonPatchSample.Web.Controllers
|
||||
{
|
||||
[Route("jsonpatch/[action]")]
|
||||
public class JsonPatchController : Controller
|
||||
public class HomeController : Controller
|
||||
{
|
||||
[HttpPatch]
|
||||
public IActionResult JsonPatchWithModelState([FromBody] JsonPatchDocument<Customer> patchDoc)
|
|
@ -7,8 +7,8 @@
|
|||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>dab1252d-577c-4912-98be-1a812bf83f86</ProjectGuid>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
|
@ -3,15 +3,8 @@
|
|||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace JsonPatchWebSite.Models
|
||||
namespace JsonPatchSample.Web.Models
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
public string ProductName { get; set; }
|
||||
|
||||
public Category ProductCategory { get; set; }
|
||||
}
|
||||
|
||||
[JsonConverter(typeof(ProductCategoryConverter))]
|
||||
public class Category
|
||||
{
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace JsonPatchWebSite.Models
|
||||
namespace JsonPatchSample.Web.Models
|
||||
{
|
||||
public class Customer
|
||||
{
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace JsonPatchWebSite.Models
|
||||
namespace JsonPatchSample.Web.Models
|
||||
{
|
||||
public class Order
|
||||
{
|
|
@ -1,10 +1,12 @@
|
|||
// 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 ModelBindingWebSite.Models
|
||||
namespace JsonPatchSample.Web.Models
|
||||
{
|
||||
public class ArrayOfPersonWithNoProperties
|
||||
public class Product
|
||||
{
|
||||
public PersonWithNoProperties[] people { get; set; }
|
||||
public string ProductName { get; set; }
|
||||
|
||||
public Category ProductCategory { get; set; }
|
||||
}
|
||||
}
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using JsonPatchWebSite.Models;
|
||||
using JsonPatchSample.Web.Models;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace JsonPatchWebSite
|
||||
namespace JsonPatchSample.Web
|
||||
{
|
||||
public class ProductCategoryConverter : JsonConverter
|
||||
{
|
|
@ -4,7 +4,7 @@
|
|||
using System;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace JsonPatchWebSite
|
||||
namespace JsonPatchSample.Web
|
||||
{
|
||||
public class ReplaceOrderTypeConverter : JsonConverter
|
||||
{
|
|
@ -4,7 +4,7 @@
|
|||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace JsonPatchWebSite
|
||||
namespace JsonPatchSample.Web
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
|
@ -17,8 +17,6 @@ namespace JsonPatchWebSite
|
|||
|
||||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
app.UseCultureReplacer();
|
||||
|
||||
// Add MVC to the request pipeline
|
||||
app.UseMvc();
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"commands": {
|
||||
"web": "Microsoft.AspNet.Server.Kestrel",
|
||||
"weblistener": "Microsoft.AspNet.Server.WebListener"
|
||||
},
|
||||
"dependencies": {
|
||||
"Microsoft.AspNet.Mvc": "6.0.0-*",
|
||||
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
|
||||
"Microsoft.AspNet.Server.WebListener": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"dnx451": { },
|
||||
"dnxcore50": { }
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
JsonPatchWebSite
|
||||
JsonPatchSample.Web
|
||||
===
|
||||
|
||||
This web site illustrates how to use JSON Patch operation on an object.
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
|
||||
</handlers>
|
||||
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -1,11 +1,11 @@
|
|||
// 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 LocalizationWebSite.Models;
|
||||
using LocalizationSample.Web.Models;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
using Microsoft.AspNet.Mvc.Localization;
|
||||
|
||||
namespace LocalizationWebSite.Controllers
|
||||
namespace LocalizationSample.Web.Controllers
|
||||
{
|
||||
public class HomeController : Controller
|
||||
{
|
|
@ -7,8 +7,8 @@
|
|||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>fcfe6024-2720-49b4-8257-9dbc6114f0f1</ProjectGuid>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
|
@ -0,0 +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.
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace LocalizationSample.Web.Models
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
[Required(ErrorMessage = "ProductName")]
|
||||
public string ProductName { get; set; }
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace LocalizationWebSite.Models
|
||||
namespace LocalizationSample.Web.Models
|
||||
{
|
||||
public class User
|
||||
{
|
||||
|
@ -12,10 +12,4 @@ namespace LocalizationWebSite.Models
|
|||
|
||||
public Product Product { get; set; }
|
||||
}
|
||||
|
||||
public class Product
|
||||
{
|
||||
[Required(ErrorMessage = "ProductName")]
|
||||
public string ProductName { get; set; }
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ using Microsoft.AspNet.Builder;
|
|||
using Microsoft.AspNet.Localization;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace LocalizationWebSite
|
||||
namespace LocalizationSample.Web
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
|
@ -21,8 +21,6 @@ namespace LocalizationWebSite
|
|||
|
||||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
app.UseCultureReplacer();
|
||||
|
||||
var options = new RequestLocalizationOptions
|
||||
{
|
||||
SupportedCultures = new List<CultureInfo>
|
|
@ -1,4 +1,4 @@
|
|||
@model LocalizationWebSite.Models.User
|
||||
@model LocalizationSample.Web.Models.User
|
||||
|
||||
@Html.ValidationMessage("Name")
|
||||
@Html.ValidationMessage("Product.ProductName")
|
|
@ -1,5 +1,5 @@
|
|||
@using LocalizationWebSite
|
||||
@using Microsoft.Extensions.Localization
|
||||
@using LocalizationSample.Web
|
||||
@using Microsoft.AspNet.Mvc.Localization
|
||||
@using Microsoft.Extensions.Localization
|
||||
|
||||
@inject IViewLocalizer LocString
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"commands": {
|
||||
"web": "Microsoft.AspNet.Server.Kestrel",
|
||||
"weblistener": "Microsoft.AspNet.Server.WebListener"
|
||||
},
|
||||
"dependencies": {
|
||||
"Microsoft.AspNet.Mvc": "6.0.0-*",
|
||||
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
|
||||
"Microsoft.AspNet.Server.WebListener": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"dnx451": { },
|
||||
"dnxcore50": { }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
LocalizationSample.Web
|
||||
===
|
||||
|
||||
This web site illustrates use cases for MVC localization.
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
|
||||
</handlers>
|
||||
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -1,315 +0,0 @@
|
|||
// 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.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class ActionResultTests : IClassFixture<MvcTestFixture<ActionResultsWebSite.Startup>>
|
||||
{
|
||||
public ActionResultTests(MvcTestFixture<ActionResultsWebSite.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
||||
|
||||
public HttpClient Client { get; }
|
||||
|
||||
[Fact]
|
||||
public async Task BadRequestResult_CanBeReturned()
|
||||
{
|
||||
// Arrange
|
||||
var input = "{\"SampleInt\":10}";
|
||||
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetBadResult");
|
||||
|
||||
request.Content = new StringContent(input, Encoding.UTF8, "application/json");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
Assert.Equal("", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreatedResult_SetsRelativePathInLocationHeader()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetCreatedRelative");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
Assert.Equal("1", response.Headers.Location.OriginalString);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreatedResult_SetsAbsolutePathInLocationHeader()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetCreatedAbsolute");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
Assert.Equal("/ActionResultsVerification/GetDummy/1", response.Headers.Location.OriginalString);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreatedResult_SetsQualifiedPathInLocationHeader()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetCreatedQualified");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
Assert.Equal(
|
||||
"http://localhost/ActionResultsVerification/GetDummy/1",
|
||||
response.Headers.Location.OriginalString);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreatedResult_SetsUriInLocationHeader()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetCreatedUri");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
Assert.Equal("/ActionResultsVerification/GetDummy/1", response.Headers.Location.OriginalString);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreatedAtActionResult_GeneratesUri_WithActionAndController()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetCreatedAtAction");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
Assert.Equal("http://localhost/ActionResultsVerification/GetDummy/1", response.Headers.Location.OriginalString);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreatedAtRouteResult_GeneratesUri_WithRouteValues()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetCreatedAtRoute");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
Assert.Equal("http://localhost/ActionResultsVerification/GetDummy/1", response.Headers.Location.OriginalString);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreatedAtRouteResult_GeneratesUri_WithRouteName()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetCreatedAtRouteWithRouteName");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
Assert.Equal("http://localhost/foo/ActionResultsVerification/GetDummy/1", response.Headers.Location.OriginalString);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task SerializableError_CanSerializeNormalObjects()
|
||||
{
|
||||
// Arrange
|
||||
var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<DummyClass xmlns=\"http://schemas.datacontract.org/2004/07/ActionResultsWebSite\">" +
|
||||
"<SampleInt>2</SampleInt><SampleString>foo</SampleString></DummyClass>";
|
||||
var request = new HttpRequestMessage(HttpMethod.Post, "Home/GetCustomErrorObject");
|
||||
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json"));
|
||||
request.Content = new StringContent(input, Encoding.UTF8, "application/xml");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
Assert.Equal("[\"Something went wrong with the model.\"]",
|
||||
await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ContentResult_WritesContent_SetsDefaultContentTypeAndEncoding()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetContentResult");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Equal("content", await response.Content.ReadAsStringAsync());
|
||||
Assert.Equal("text/plain", response.Content.Headers.ContentType.MediaType);
|
||||
Assert.Equal("utf-8", response.Content.Headers.ContentType.CharSet);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ContentResult_WritesContent_SetsContentType_UsesDefaultEncoding_AndNoCharset()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetContentResultWithContentType");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Equal("application/json", response.Content.Headers.ContentType.MediaType);
|
||||
Assert.Equal("content", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ContentResult_WritesContent_SetsContentTypeAndEncoding()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetContentResultWithContentTypeAndEncoding");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Equal("application/json", response.Content.Headers.ContentType.MediaType);
|
||||
Assert.Equal("us-ascii", response.Content.Headers.ContentType.CharSet);
|
||||
Assert.Equal("content", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ObjectResult_WithStatusCodeAndNoContent_SetsSameStatusCode()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Get,
|
||||
"ActionResultsVerification/GetObjectResultWithNoContent");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task HttpNotFoundObjectResult_NoResponseContent()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Get,
|
||||
"ActionResultsVerification/GetNotFoundObjectResult");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
|
||||
Assert.Equal("", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task HttpNotFoundObjectResult_WithResponseContent()
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(
|
||||
HttpMethod.Post,
|
||||
"ActionResultsVerification/GetNotFoundObjectResultWithContent");
|
||||
|
||||
// Act
|
||||
var response = await Client.SendAsync(request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
|
||||
Assert.Equal("{\"SampleInt\":10,\"SampleString\":\"Foo\"}", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task HttpNotFoundObjectResult_WithDisposableObject()
|
||||
{
|
||||
// Arrange
|
||||
var nameValueCollection = new List<KeyValuePair<string, string>>
|
||||
{
|
||||
new KeyValuePair<string, string>("guid", Guid.NewGuid().ToString()),
|
||||
};
|
||||
|
||||
// Act
|
||||
var response1 = await Client.PostAsync(
|
||||
"/ActionResultsVerification/GetDisposeCalled",
|
||||
new FormUrlEncodedContent(nameValueCollection));
|
||||
|
||||
await Client.PostAsync(
|
||||
"/ActionResultsVerification/GetNotFoundObjectResultWithDisposableObject",
|
||||
new FormUrlEncodedContent(nameValueCollection));
|
||||
|
||||
var response2 = await Client.PostAsync(
|
||||
"/ActionResultsVerification/GetDisposeCalled",
|
||||
new FormUrlEncodedContent(nameValueCollection));
|
||||
|
||||
// Assert
|
||||
var isDisposed = Convert.ToBoolean(await response1.Content.ReadAsStringAsync());
|
||||
Assert.False(isDisposed);
|
||||
|
||||
isDisposed = Convert.ToBoolean(await response2.Content.ReadAsStringAsync());
|
||||
Assert.True(isDisposed);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,156 +0,0 @@
|
|||
// 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.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class ActivatorTests : IClassFixture<MvcTestFixture<ActivatorWebSite.Startup>>
|
||||
{
|
||||
public ActivatorTests(MvcTestFixture<ActivatorWebSite.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
||||
|
||||
public HttpClient Client { get; }
|
||||
|
||||
[Fact]
|
||||
public async Task ControllerThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked()
|
||||
{
|
||||
// Arrange
|
||||
var expectedMessage =
|
||||
"Unable to resolve service for type 'ActivatorWebSite.CannotBeActivatedController+FakeType' while " +
|
||||
"attempting to activate 'ActivatorWebSite.CannotBeActivatedController'.";
|
||||
|
||||
// Act & Assert
|
||||
var response = await Client.GetAsync("CannotBeActivated/Index");
|
||||
|
||||
var exception = response.GetServerException();
|
||||
Assert.Equal(typeof(InvalidOperationException).FullName, exception.ExceptionType);
|
||||
Assert.Equal(expectedMessage, exception.ExceptionMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task PropertiesForPocoControllersAreInitialized()
|
||||
{
|
||||
// Arrange
|
||||
var expected = "4|some-text";
|
||||
|
||||
// Act
|
||||
var response = await Client.GetAsync("Plain?foo=some-text");
|
||||
|
||||
// Assert
|
||||
var headerValue = Assert.Single(response.Headers.GetValues("X-Fake-Header"));
|
||||
Assert.Equal("Fake-Value", headerValue);
|
||||
var body = await response.Content.ReadAsStringAsync();
|
||||
Assert.Equal(expected, body);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task PropertiesForTypesDerivingFromControllerAreInitialized()
|
||||
{
|
||||
// Arrange
|
||||
var expected = "Hello world";
|
||||
|
||||
// Act
|
||||
var body = await Client.GetStringAsync("Regular");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, body);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ViewActivator_ActivatesDefaultInjectedProperties()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<label for=""Hello"">Hello</label> world! /View/ConsumeServicesFromBaseType";
|
||||
|
||||
// Act
|
||||
var body = await Client.GetStringAsync("View/ConsumeDefaultProperties");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, body.Trim());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ViewActivator_ActivatesAndContextualizesInjectedServices()
|
||||
{
|
||||
// Arrange
|
||||
var expected = "4 test-value";
|
||||
|
||||
// Act
|
||||
var body = await Client.GetStringAsync("View/ConsumeInjectedService?test=test-value");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, body.Trim());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ViewActivator_ActivatesServicesFromBaseType()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"/content/scripts/test.js";
|
||||
|
||||
// Act
|
||||
var body = await Client.GetStringAsync("View/ConsumeServicesFromBaseType");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, body.Trim());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ViewComponentActivator_Activates()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"Random Number:4";
|
||||
|
||||
// Act
|
||||
var body = await Client.GetStringAsync("View/ConsumeViewComponent");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, body.Trim());
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public async Task ViewComponentThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked()
|
||||
{
|
||||
// Arrange
|
||||
var expectedMessage =
|
||||
"Unable to resolve service for type 'ActivatorWebSite.CannotBeActivatedComponent+FakeType' " +
|
||||
"while attempting to activate 'ActivatorWebSite.CannotBeActivatedComponent'.";
|
||||
|
||||
// Act & Assert
|
||||
var response = await Client.GetAsync("View/ConsumeCannotBeActivatedComponent");
|
||||
|
||||
var exception = response.GetServerException();
|
||||
Assert.Equal(typeof(InvalidOperationException).FullName, exception.ExceptionType);
|
||||
Assert.Equal(expectedMessage, exception.ExceptionMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task TagHelperActivation_ConstructorInjection_RendersProperly()
|
||||
{
|
||||
// Arrange
|
||||
var expected = "<body><h2>Activation Test</h2>" +
|
||||
Environment.NewLine +
|
||||
"<div>FakeFakeFake</div>" +
|
||||
Environment.NewLine +
|
||||
"<span>" +
|
||||
"<input id=\"foo\" name=\"foo\" type=\"hidden\" value=\"test content\" />" +
|
||||
"</span>" +
|
||||
Environment.NewLine +
|
||||
"<footer>Footer from activated ViewData</footer>" +
|
||||
"</body>";
|
||||
|
||||
// Act
|
||||
var body = await Client.GetStringAsync("View/UseTagHelper");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, body.Trim(), ignoreLineEndingDifferences: true);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -99,7 +99,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
public async Task ApplicationModelExtensions_AddsConventionToAllControllers()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("http://localhost/Lisence/GetLisence");
|
||||
var response = await Client.GetAsync("http://localhost/License/GetLicense");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
|
|
|
@ -1,90 +0,0 @@
|
|||
// 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.Net;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class ControllerDiscoveryConventionTests :
|
||||
IClassFixture<MvcTestFixture<ControllerDiscoveryConventionsWebSite.Startup>>,
|
||||
IClassFixture<FilteredDefaultAssemblyProviderFixture<ControllerDiscoveryConventionsWebSite.Startup>>
|
||||
{
|
||||
public ControllerDiscoveryConventionTests(
|
||||
MvcTestFixture<ControllerDiscoveryConventionsWebSite.Startup> fixture,
|
||||
FilteredDefaultAssemblyProviderFixture<ControllerDiscoveryConventionsWebSite.Startup> filteredFixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
FilteredClient = filteredFixture.Client;
|
||||
}
|
||||
|
||||
public HttpClient Client { get; }
|
||||
|
||||
public HttpClient FilteredClient { get; }
|
||||
|
||||
[Fact]
|
||||
public async Task AbstractControllers_AreSkipped()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("Abstract/GetValue");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task TypesDerivingFromControllerBaseTypesThatDoNotReferenceMvc_AreSkipped()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("SqlTransactionManager/GetValue");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task TypesMarkedWithNonController_AreSkipped()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("NonController/GetValue");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task PocoTypesWithControllerSuffix_AreDiscovered()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("Poco/GetValue");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Equal("PocoController", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task TypesDerivingFromTypesWithControllerSuffix_AreDiscovered()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("ChildOfAbstract/GetValue");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Equal("AbstractController", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task TypesDerivingFromApiController_AreDiscovered()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await FilteredClient.GetAsync("PersonApi/GetValue");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Equal("PersonApi", await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,9 +8,9 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class CustomRouteTest : IClassFixture<MvcTestFixture<CustomRouteWebSite.Startup>>
|
||||
public class CustomRouteSampleTest : IClassFixture<MvcTestFixture<CustomRouteSample.Web.Startup>>
|
||||
{
|
||||
public CustomRouteTest(MvcTestFixture<CustomRouteWebSite.Startup> fixture)
|
||||
public CustomRouteSampleTest(MvcTestFixture<CustomRouteSample.Web.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
public async Task RouteToLocale_ConventionalRoute_BasedOnUser(string user, string expected)
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/CustomRoute_Products/Index");
|
||||
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Products/Index");
|
||||
request.Headers.Add("User", user);
|
||||
|
||||
// Act
|
||||
|
@ -43,7 +43,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
public async Task RouteWithAttributeRoute_IncludesLocale_BasedOnUser(string user, string expected)
|
||||
{
|
||||
// Arrange
|
||||
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/CustomRoute_Orders/5");
|
||||
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Orders/5");
|
||||
request.Headers.Add("User", user);
|
||||
|
||||
// Act
|
|
@ -7,11 +7,9 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
// The EmbeddedFileSystem used by RazorEmbeddedViewsWebSite performs case sensitive lookups for files.
|
||||
// These tests verify that we correctly normalize route values when constructing view lookup paths.
|
||||
public class RazorFileSystemCaseSensitivityTest : IClassFixture<MvcTestFixture<RazorEmbeddedViewsWebSite.Startup>>
|
||||
public class EmbeddedViewSampleTest : IClassFixture<MvcTestFixture<EmbeddedViewSample.Web.Startup>>
|
||||
{
|
||||
public RazorFileSystemCaseSensitivityTest(MvcTestFixture<RazorEmbeddedViewsWebSite.Startup> fixture)
|
||||
public EmbeddedViewSampleTest(MvcTestFixture<EmbeddedViewSample.Web.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
||||
|
@ -19,13 +17,27 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
public HttpClient Client { get; }
|
||||
|
||||
[Fact]
|
||||
public async Task RazorViewEngine_NormalizesActionName_WhenLookingUpViewPaths()
|
||||
public async Task RazorViewEngine_UsesFileProviderOnViewEngineOptionsToLocateViews()
|
||||
{
|
||||
// Arrange
|
||||
var expectedMessage = "Hello test-user, this is /RazorEmbeddedViews_Home";
|
||||
var expectedMessage = "Hello test-user, this is /Home/EchoActionUrl";
|
||||
|
||||
// Act
|
||||
var response = await Client.GetStringAsync("http://localhost/RazorEmbeddedViews_Home/index?User=test-user");
|
||||
var response = await Client.GetStringAsync("http://localhost/Home/EchoActionUrl?User=test-user");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedMessage, response);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task RazorViewEngine_UsesFileProviderOnViewEngineOptionsToLocateAreaViews()
|
||||
{
|
||||
// Arrange
|
||||
var expectedMessage = "Hello admin-user, this is /Restricted/Admin/Login";
|
||||
var target = "http://localhost/Restricted/Admin/Login?AdminUser=admin-user";
|
||||
|
||||
// Act
|
||||
var response = await Client.GetStringAsync(target);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedMessage, response);
|
||||
|
@ -35,10 +47,10 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
public async Task RazorViewEngine_NormalizesControllerRouteValue_WhenLookingUpViewPaths()
|
||||
{
|
||||
// Arrange
|
||||
var expectedMessage = "Hello test-user, this is /razorembeddedviews_home";
|
||||
var expectedMessage = "Hello test-user, this is /home/echoactionurl";
|
||||
|
||||
// Act
|
||||
var response = await Client.GetStringAsync("http://localhost/razorembeddedviews_home?User=test-user");
|
||||
var response = await Client.GetStringAsync("http://localhost/home/echoactionurl?User=test-user");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedMessage, response);
|
||||
|
@ -48,8 +60,8 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
public async Task RazorViewEngine_NormalizesAreaRouteValue_WhenLookupViewPaths()
|
||||
{
|
||||
// Arrange
|
||||
var expectedMessage = "Hello admin-user, this is /restricted/razorembeddedviews_admin/login";
|
||||
var target = "http://localhost/restricted/razorembeddedviews_admin/login?AdminUser=admin-user";
|
||||
var expectedMessage = "Hello admin-user, this is /restricted/admin/login";
|
||||
var target = "http://localhost/restricted/admin/login?AdminUser=admin-user";
|
||||
|
||||
// Act
|
||||
var response = await Client.GetStringAsync(target);
|
|
@ -1,41 +0,0 @@
|
|||
// 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;
|
||||
using Microsoft.AspNet.Mvc.Infrastructure;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.PlatformAbstractions;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class FilteredDefaultAssemblyProviderFixture<TStartup> : MvcTestFixture<TStartup>
|
||||
where TStartup : new()
|
||||
{
|
||||
protected override void AddAdditionalServices(IServiceCollection services)
|
||||
{
|
||||
// MvcTestFixture<TStartup> normally replaces the DefaultAssemblyProvider with an IAssemblyProvider
|
||||
// implementation that limits the set of candidate assemblies to the executing application. Switch it back
|
||||
// to using a filtered default assembly provider.
|
||||
services.AddTransient<IAssemblyProvider, FilteredDefaultAssemblyProvider>();
|
||||
}
|
||||
|
||||
private class FilteredDefaultAssemblyProvider : DefaultAssemblyProvider
|
||||
{
|
||||
public FilteredDefaultAssemblyProvider(ILibraryManager libraryManager)
|
||||
: base(libraryManager)
|
||||
{
|
||||
}
|
||||
|
||||
protected override IEnumerable<Library> GetCandidateLibraries()
|
||||
{
|
||||
var libraries = base.GetCandidateLibraries();
|
||||
|
||||
// Filter out other WebSite projects
|
||||
return libraries.Where(library => !library.Name.Contains("WebSite") ||
|
||||
library.Name.Equals(nameof(ControllerDiscoveryConventionsWebSite), StringComparison.Ordinal));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,9 +8,9 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class FormatFilterTest : IClassFixture<MvcTestFixture<FormatFilterWebSite.Startup>>
|
||||
public class FormatFilterSampleTest : IClassFixture<MvcTestFixture<FormatFilterSample.Web.Startup>>
|
||||
{
|
||||
public FormatFilterTest(MvcTestFixture<FormatFilterWebSite.Startup> fixture)
|
||||
public FormatFilterSampleTest(MvcTestFixture<FormatFilterSample.Web.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
||||
|
@ -112,6 +112,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Equal(@"ProducesOverrideController", await response.Content.ReadAsStringAsync());
|
||||
Assert.Equal("application/custom", response.Content.Headers.ContentType.MediaType);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,9 +11,9 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class InlineConstraintTests : IClassFixture<MvcTestFixture<InlineConstraints.Startup>>
|
||||
public class InlineConstraintSampleTest : IClassFixture<MvcTestFixture<InlineConstraintSample.Web.Startup>>
|
||||
{
|
||||
public InlineConstraintTests(MvcTestFixture<InlineConstraints.Startup> fixture)
|
||||
public InlineConstraintSampleTest(MvcTestFixture<InlineConstraintSample.Web.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
public async Task RoutingToANonExistantArea_WithExistConstraint_RoutesToCorrectAction()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("http://localhost/area-exists/Users");
|
||||
var response = await Client.GetAsync("http://localhost/constant-prefix/Users");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
|
@ -32,24 +32,6 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal("Users.Index", returnValue);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task RoutingToANonExistantArea_WithoutExistConstraint_RoutesToIncorrectAction()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetAsync("http://localhost/area-withoutexists/Users");
|
||||
|
||||
// Assert
|
||||
var exception = response.GetServerException();
|
||||
// Mono issue - https://github.com/aspnet/External/issues/19
|
||||
Assert.Equal(
|
||||
"The view 'Index' was not found." +
|
||||
" The following locations were searched:" + PlatformNormalizer.GetNewLinesAsUnderscores(1) +
|
||||
"/Areas/Users/Views/Home/Index.cshtml" + PlatformNormalizer.GetNewLinesAsUnderscores(1) +
|
||||
"/Areas/Users/Views/Shared/Index.cshtml" + PlatformNormalizer.GetNewLinesAsUnderscores(1) +
|
||||
"/Views/Shared/Index.cshtml",
|
||||
exception.ExceptionMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetProductById_IntConstraintForOptionalId_IdPresent()
|
||||
{
|
||||
|
@ -61,7 +43,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["id"], "5");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductById");
|
||||
}
|
||||
|
||||
|
@ -74,7 +56,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductById");
|
||||
}
|
||||
|
||||
|
@ -98,7 +80,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["name"], "asdf");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByName");
|
||||
}
|
||||
|
||||
|
@ -134,7 +116,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["dateTime"], new DateTime(2014, 10, 11, 13, 45, 30));
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByManufacturingDate");
|
||||
}
|
||||
|
||||
|
@ -148,7 +130,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["name"], "Sports");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByCategoryName");
|
||||
}
|
||||
|
||||
|
@ -172,7 +154,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByCategoryName");
|
||||
}
|
||||
|
||||
|
@ -186,7 +168,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["catId"], "40");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByCategoryId");
|
||||
}
|
||||
|
||||
|
@ -220,7 +202,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["price"], "4023.23423");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByPrice");
|
||||
}
|
||||
|
||||
|
@ -233,7 +215,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByPrice");
|
||||
}
|
||||
|
||||
|
@ -247,7 +229,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["manId"], "57");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByManufacturerId");
|
||||
}
|
||||
|
||||
|
@ -260,7 +242,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetProductByManufacturerId");
|
||||
}
|
||||
|
||||
|
@ -273,7 +255,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Products");
|
||||
Assert.Equal(result["controller"], "Products");
|
||||
Assert.Equal(result["action"], "GetUserByName");
|
||||
Assert.Equal(result["name"], "abc");
|
||||
}
|
||||
|
@ -299,7 +281,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["id"], "691cf17a-791b-4af8-99fd-e739e168170f");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Store");
|
||||
Assert.Equal(result["controller"], "Store");
|
||||
Assert.Equal(result["action"], "GetStoreById");
|
||||
}
|
||||
|
||||
|
@ -312,7 +294,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Store");
|
||||
Assert.Equal(result["controller"], "Store");
|
||||
Assert.Equal(result["action"], "GetStoreById");
|
||||
}
|
||||
|
||||
|
@ -336,7 +318,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var result = await GetResponseValues(response);
|
||||
Assert.Equal(result["location"], "Bellevue");
|
||||
Assert.Equal(result["controller"], "InlineConstraints_Store");
|
||||
Assert.Equal(result["controller"], "Store");
|
||||
Assert.Equal(result["action"], "GetStoreByLocation");
|
||||
}
|
||||
|
||||
|
@ -395,7 +377,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, id:int? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductById",
|
||||
"id",
|
||||
"5",
|
||||
|
@ -405,17 +387,17 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, id:int? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductById",
|
||||
"id",
|
||||
"sdsd",
|
||||
"/area-exists/InlineConstraints_Products/GetProductById?id=sdsd"
|
||||
string.Empty // Link generation expected to fail.
|
||||
};
|
||||
|
||||
// Attribute Route, name:alpha constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByName",
|
||||
"name",
|
||||
"zxcv",
|
||||
|
@ -425,7 +407,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, name:length(1,20)? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByCategoryName",
|
||||
"name",
|
||||
"sports",
|
||||
|
@ -435,7 +417,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, name:length(1,20)? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByCategoryName",
|
||||
null,
|
||||
null,
|
||||
|
@ -445,7 +427,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, catId:int:range(10, 100) constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByCategoryId",
|
||||
"catId",
|
||||
"50",
|
||||
|
@ -455,17 +437,17 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, catId:int:range(10, 100) constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByCategoryId",
|
||||
"catId",
|
||||
"500",
|
||||
"/area-exists/InlineConstraints_Products/GetProductByCategoryId?catId=500"
|
||||
string.Empty // Link generation expected to fail.
|
||||
};
|
||||
|
||||
// Attribute Route, name:length(1,20)? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByPrice",
|
||||
"price",
|
||||
"123.45",
|
||||
|
@ -475,7 +457,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, price:float? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByManufacturerId",
|
||||
"manId",
|
||||
"15",
|
||||
|
@ -485,27 +467,27 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Attribute Route, manId:int:min(10)? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByManufacturerId",
|
||||
"manId",
|
||||
"qwer",
|
||||
"/area-exists/InlineConstraints_Products/GetProductByManufacturerId?manId=qwer"
|
||||
string.Empty // Link generation expected to fail.
|
||||
};
|
||||
|
||||
// Attribute Route, manId:int:min(10)? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByManufacturerId",
|
||||
"manId",
|
||||
"1",
|
||||
"/area-exists/InlineConstraints_Products/GetProductByManufacturerId?manId=1"
|
||||
string.Empty // Link generation expected to fail.
|
||||
};
|
||||
|
||||
// Attribute Route, dateTime:datetime constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Products",
|
||||
"Products",
|
||||
"GetProductByManufacturingDate",
|
||||
"dateTime",
|
||||
"2014-10-11T13:45:30",
|
||||
|
@ -515,7 +497,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
// Conventional Route, id:guid? constraint
|
||||
yield return new object[]
|
||||
{
|
||||
"InlineConstraints_Store",
|
||||
"Store",
|
||||
"GetStoreById",
|
||||
"id",
|
||||
"691cf17a-791b-4af8-99fd-e739e168170f",
|
|
@ -6,16 +6,16 @@ using System.Collections.Generic;
|
|||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using JsonPatchWebSite.Models;
|
||||
using JsonPatchSample.Web.Models;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class JsonPatchTest : IClassFixture<MvcTestFixture<JsonPatchWebSite.Startup>>
|
||||
public class JsonPatchSampleTest : IClassFixture<MvcTestFixture<JsonPatchSample.Web.Startup>>
|
||||
{
|
||||
public JsonPatchTest(MvcTestFixture<JsonPatchWebSite.Startup> fixture)
|
||||
public JsonPatchSampleTest(MvcTestFixture<JsonPatchSample.Web.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
|
@ -4,7 +4,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.Testing;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
|
@ -12,12 +11,9 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public class LocalizationTest : IClassFixture<MvcTestFixture<LocalizationWebSite.Startup>>
|
||||
public class LocalizationSampleTest : IClassFixture<MvcTestFixture<LocalizationSample.Web.Startup>>
|
||||
{
|
||||
private const string SiteName = nameof(LocalizationWebSite);
|
||||
private static readonly Assembly _assembly = typeof(LocalizationTest).GetTypeInfo().Assembly;
|
||||
|
||||
public LocalizationTest(MvcTestFixture<LocalizationWebSite.Startup> fixture)
|
||||
public LocalizationSampleTest(MvcTestFixture<LocalizationSample.Web.Startup> fixture)
|
||||
{
|
||||
Client = fixture.Client;
|
||||
}
|
|
@ -1,96 +0,0 @@
|
|||
// 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 LoggingWebSite;
|
||||
using Xunit.Sdk;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public static class LoggingAssert
|
||||
{
|
||||
/// <summary>
|
||||
/// Compares two trees and verifies if the scope nodes are equal
|
||||
/// </summary>
|
||||
/// <param name="expected"></param>
|
||||
/// <param name="actual"></param>
|
||||
/// <returns></returns>
|
||||
public static bool ScopesEqual(ScopeNodeDto expected, ScopeNodeDto actual)
|
||||
{
|
||||
// To enable diagnosis, here a flat-list(pe-order traversal based) of
|
||||
// these trees is provided.
|
||||
if (!AreScopesEqual(expected, actual))
|
||||
{
|
||||
var expectedScopes = new List<string>();
|
||||
var actualScopes = new List<string>();
|
||||
|
||||
TraverseScopeTree(expected, expectedScopes);
|
||||
TraverseScopeTree(actual, actualScopes);
|
||||
|
||||
throw new EqualException(expected: string.Join(", ", expectedScopes),
|
||||
actual: string.Join(", ", actualScopes));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Compares two trees and verifies if the scope nodes are equal
|
||||
/// </summary>
|
||||
/// <param name="root1"></param>
|
||||
/// <param name="root2"></param>
|
||||
/// <returns></returns>
|
||||
private static bool AreScopesEqual(ScopeNodeDto root1, ScopeNodeDto root2)
|
||||
{
|
||||
if (root1 == null && root2 == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (root1 == null || root2 == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!string.Equals(root1.State?.ToString(), root2.State?.ToString(), StringComparison.OrdinalIgnoreCase)
|
||||
|| root1.Children.Count != root2.Children.Count)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool isChildScopeEqual = true;
|
||||
for (int i = 0; i < root1.Children.Count; i++)
|
||||
{
|
||||
isChildScopeEqual = AreScopesEqual(root1.Children[i], root2.Children[i]);
|
||||
|
||||
if (!isChildScopeEqual)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return isChildScopeEqual;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Traverses the scope node sub-tree and collects the list scopes
|
||||
/// </summary>
|
||||
/// <param name="root"></param>
|
||||
/// <param name="scopes"></param>
|
||||
private static void TraverseScopeTree(ScopeNodeDto root, List<string> scopes)
|
||||
{
|
||||
if (root == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
scopes.Add(root.State?.ToString());
|
||||
|
||||
foreach (var childScope in root.Children)
|
||||
{
|
||||
TraverseScopeTree(childScope, scopes);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,161 +0,0 @@
|
|||
// 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;
|
||||
using LoggingWebSite;
|
||||
using Microsoft.AspNet.WebUtilities;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||
{
|
||||
public static class LoggingExtensions
|
||||
{
|
||||
public const string RequestTraceIdQueryKey = "RequestTraceId";
|
||||
|
||||
/// <summary>
|
||||
/// Gets a scope node with the given name
|
||||
/// </summary>
|
||||
/// <param name="activities"></param>
|
||||
/// <param name="scopeName"></param>
|
||||
/// <returns>A scope node if found, else null</returns>
|
||||
public static ScopeNodeDto FindScope(this IEnumerable<ActivityContextDto> activities,
|
||||
string scopeName)
|
||||
{
|
||||
ScopeNodeDto node = null;
|
||||
|
||||
foreach (var activity in activities)
|
||||
{
|
||||
if (activity.RepresentsScope)
|
||||
{
|
||||
node = GetScope(activity.Root, scopeName);
|
||||
|
||||
// Ideally we do not expect multiple scopes with the same name
|
||||
// to exist in the logs, so we break on the first found scope node.
|
||||
// Note: The logs can contain multiple scopes with the same name across
|
||||
// different requests, but the tests are expected to filter the logs by request
|
||||
// (ex: using request trace id) and then find the scope by name.
|
||||
if (node != null)
|
||||
{
|
||||
return node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets all the logs messages matching the given data type
|
||||
/// </summary>
|
||||
/// <param name="activities"></param>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<LogInfoDto> GetLogsByDataType<T>(this IEnumerable<ActivityContextDto> activities)
|
||||
{
|
||||
var logInfos = new List<LogInfoDto>();
|
||||
foreach (var activity in activities)
|
||||
{
|
||||
if (!activity.RepresentsScope)
|
||||
{
|
||||
var logInfo = activity.Root.Messages.OfDataType<T>()
|
||||
.FirstOrDefault();
|
||||
|
||||
if (logInfo != null)
|
||||
{
|
||||
logInfos.Add(logInfo);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GetLogsByDataType<T>(activity.Root, logInfos);
|
||||
}
|
||||
}
|
||||
|
||||
return logInfos;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Filters for logs activties created during application startup
|
||||
/// </summary>
|
||||
/// <param name="activities"></param>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<ActivityContextDto> FilterByStartup(this IEnumerable<ActivityContextDto> activities)
|
||||
{
|
||||
return activities.Where(activity => activity.RequestInfo == null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Filters log activities based on the given request.
|
||||
/// </summary>
|
||||
/// <param name="activities"></param>
|
||||
/// <param name="requestTraceId">The "RequestTraceId" query parameter value</param>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<ActivityContextDto> FilterByRequestTraceId(this IEnumerable<ActivityContextDto> activities,
|
||||
string requestTraceId)
|
||||
{
|
||||
return activities.Where(activity => activity.RequestInfo != null
|
||||
&& string.Equals(GetQueryValue(activity.RequestInfo.Query, RequestTraceIdQueryKey),
|
||||
requestTraceId,
|
||||
StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Filters the log messages based on the given data type
|
||||
/// </summary>
|
||||
/// <param name="logInfos"></param>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<LogInfoDto> OfDataType<T>(this IEnumerable<LogInfoDto> logInfos)
|
||||
{
|
||||
return logInfos.Where(logInfo => logInfo.StateType != null
|
||||
&& logInfo.StateType.Equals(typeof(T)));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Traverses through the log node tree and gets the log messages whose StateType
|
||||
/// matches the supplied data type.
|
||||
/// </summary>
|
||||
/// <param name="node"></param>
|
||||
/// <param name="logInfoDtos"></param>
|
||||
private static void GetLogsByDataType<T>(ScopeNodeDto node, IList<LogInfoDto> logInfoDtos)
|
||||
{
|
||||
foreach (var logInfo in node.Messages.OfDataType<T>())
|
||||
{
|
||||
logInfoDtos.Add(logInfo);
|
||||
}
|
||||
|
||||
foreach (var scopeNode in node.Children)
|
||||
{
|
||||
GetLogsByDataType<T>(scopeNode, logInfoDtos);
|
||||
}
|
||||
}
|
||||
|
||||
private static ScopeNodeDto GetScope(ScopeNodeDto root, string scopeName)
|
||||
{
|
||||
if (string.Equals(root.State?.ToString(),
|
||||
scopeName,
|
||||
StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return root;
|
||||
}
|
||||
|
||||
foreach (var childNode in root.Children)
|
||||
{
|
||||
var foundNode = GetScope(childNode, scopeName);
|
||||
|
||||
if (foundNode != null)
|
||||
{
|
||||
return foundNode;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static string GetQueryValue(string query, string key)
|
||||
{
|
||||
var queryString = QueryHelpers.ParseQuery(query);
|
||||
|
||||
return queryString[key].FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче