diff --git a/eng/Versions.props b/eng/Versions.props index 0bec00168..7979eadfe 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -80,6 +80,7 @@ 6.0.0-preview.3.21166.3 13.0.1 6.3.1 + 2.14.1 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 daf359683..828c2c89e 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,7 @@ string routePrefix = "/api/" + modelName; string endPointsClassName = Model.EndpointsName; string methodName = $"Map{@modelName}Endpoints"; - string pluralModel = $"{@modelName}s"; + string pluralModel = Model.ModelType.PluralName; string getAllModels = $"GetAll{@pluralModel}"; string getModelById = $"Get{@modelName}ById"; string deleteModel = $"Delete{@modelName}"; diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml index a0ea6cb63..97d7d21f8 100644 --- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml +++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml @@ -5,7 +5,7 @@ string routePrefix = "/api/" + modelName; string endPointsClassName = Model.EndpointsName; string methodName = $"Map{@modelName}Endpoints"; - string pluralModel = $"{@modelName}s"; + string pluralModel = Model.ModelType.PluralName; string getAllModels = $"GetAll{@pluralModel}"; string getModelById = $"Get{@modelName}ById"; string deleteModel = $"Delete{@modelName}"; diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml index 7635a034c..ed57f8b59 100644 --- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml +++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml @@ -4,7 +4,7 @@ string routePrefix = "/api/" + modelName; string endPointsClassName = Model.EndpointsName; string methodName = $"Map{@modelName}Endpoints"; - string pluralModel = $"{@modelName}s"; + string pluralModel = Model.ModelType.PluralName; string getAllModels = $"GetAll{@pluralModel}"; string getModelById = $"Get{@modelName}ById"; string deleteModel = $"Delete{@modelName}"; 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 b3e269d45..bb2cd5d28 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,7 @@ string routePrefix = "/api/" + modelName; string endPointsClassName = Model.EndpointsName; string methodName = $"Map{@modelName}Endpoints"; - string pluralModel = $"{@modelName}s"; + string pluralModel = Model.ModelType.PluralName; string getAllModels = $"GetAll{@pluralModel}"; string getModelById = $"Get{@modelName}ById"; string deleteModel = $"Delete{@modelName}"; 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 7d20ce34a..d1cd297e4 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 @@ -22,11 +22,10 @@ - - + - + True @@ -41,5 +40,5 @@ MessageStrings.Designer.cs - + diff --git a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs index b4a610418..4faed9430 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,7 @@ 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.