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 @@
-