diff --git a/eng/Versions.props b/eng/Versions.props index 51c47e956..fd7acef2c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,6 +60,7 @@ 6.0.0 13.0.1 6.3.1 + 2.14.1 diff --git a/scripts/install-aspnet-codegenerator.cmd b/scripts/install-aspnet-codegenerator.cmd index a39c9384f..cc3003a19 100644 --- a/scripts/install-aspnet-codegenerator.cmd +++ b/scripts/install-aspnet-codegenerator.cmd @@ -1,4 +1,4 @@ -set VERSION=6.0.13 +set VERSION=6.0.14 set DEFAULT_NUPKG_PATH=%userprofile%\.nuget\packages set SRC_DIR=%cd% set NUPKG=artifacts/packages/Debug/Shipping/ diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml index 386cc3cd8..7e8d1d0cd 100644 --- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml +++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml @@ -6,7 +6,8 @@ string routePrefix = "/api/" + modelName; string endPointsClassName = Model.EndpointsName; string methodName = $"Map{@modelName}Endpoints"; - string pluralModel = $"{@modelName}s"; + string pluralModel = Model.ModelType.PluralName; + string routePrefixPlural = "/api/" + pluralModel; string getAllModels = $"GetAll{@pluralModel}"; string getModelById = $"Get{@modelName}ById"; string deleteModel = $"Delete{@modelName}"; @@ -75,7 +76,7 @@ public static class @endPointsClassName routes.MapPost("@routePrefix/", (@modelName model) => { - //return Results.Created($"/@pluralModel/{model.ID}", model); + //return Results.Created($"@routePrefixPlural/{model.ID}", model); }) @{ if(Model.OpenAPI) diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml index 2c25f95fe..220462ac1 100644 --- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml +++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml @@ -6,7 +6,8 @@ string routePrefix = "/api/" + modelName; string endPointsClassName = Model.EndpointsName; string methodName = $"Map{@modelName}Endpoints"; - string pluralModel = $"{@modelName}s"; + string pluralModel = Model.ModelType.PluralName; + string routePrefixPlural = "/api/" + pluralModel; string getAllModels = $"GetAll{@pluralModel}"; string getModelById = $"Get{@modelName}ById"; string deleteModel = $"Delete{@modelName}"; @@ -66,7 +67,7 @@ routes.MapPost("@routePrefix/", (@modelName model) => { - //return Results.Created($"/@pluralModel/{model.ID}", model); + //return Results.Created($"/@routePrefixPlural/{model.ID}", model); }) @{ if(Model.OpenAPI) diff --git a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj index 937681d86..b6643e90b 100644 --- a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj +++ b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj @@ -23,8 +23,7 @@ - - + diff --git a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs index b4a610418..5a4185342 100644 --- a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs +++ b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Humanizer; using Microsoft.CodeAnalysis; namespace Microsoft.DotNet.Scaffolding.Shared.Project @@ -14,6 +15,8 @@ public class ModelType public string FullName { get; set; } + public string PluralName => Name?.Pluralize(inputIsKnownToBeSingular: false); + // Violating the principle that ModelType should be decoupled from Roslyn's API. // I had to do this for editing DbContext scenarios but I need to figure out if there // is a better way. diff --git a/test/Scaffolding/E2E_Test/E2E_Test.Tests.csproj b/test/Scaffolding/E2E_Test/E2E_Test.Tests.csproj index 101a4876b..e6babfed8 100644 --- a/test/Scaffolding/E2E_Test/E2E_Test.Tests.csproj +++ b/test/Scaffolding/E2E_Test/E2E_Test.Tests.csproj @@ -15,7 +15,6 @@ - diff --git a/test/Scaffolding/VS.Web.CG.MSBuild.Test/VS.Web.CG.MSBuild.Tests.csproj b/test/Scaffolding/VS.Web.CG.MSBuild.Test/VS.Web.CG.MSBuild.Tests.csproj index ebe13fa7b..8dfed11d7 100644 --- a/test/Scaffolding/VS.Web.CG.MSBuild.Test/VS.Web.CG.MSBuild.Tests.csproj +++ b/test/Scaffolding/VS.Web.CG.MSBuild.Test/VS.Web.CG.MSBuild.Tests.csproj @@ -1,5 +1,5 @@  - + @@ -22,10 +22,9 @@ MsBuildSources\%(RecursiveDir)%(FileName) - + - diff --git a/test/Scaffolding/VS.Web.CG.Tools.Test/VS.Web.CG.Tools.Tests.csproj b/test/Scaffolding/VS.Web.CG.Tools.Test/VS.Web.CG.Tools.Tests.csproj index d5e064c56..31d238e04 100644 --- a/test/Scaffolding/VS.Web.CG.Tools.Test/VS.Web.CG.Tools.Tests.csproj +++ b/test/Scaffolding/VS.Web.CG.Tools.Test/VS.Web.CG.Tools.Tests.csproj @@ -21,7 +21,6 @@ -