Skip to content

Commit

Permalink
blazor-crud scaffolder minor fixes (#2938) (#2941)
Browse files Browse the repository at this point in the history
* blazor-crud scaffolder minor fixes

* PR comment fixes 1

* changing heading sequence

* minor fix
  • Loading branch information
deepchoudhery authored Aug 27, 2024
1 parent 6c97177 commit 97419af
Show file tree
Hide file tree
Showing 17 changed files with 65 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace Microsoft.VisualStudio.Web.CodeGenerators.Mvc.Blazor
public class BlazorIdentityCommandLineModel
{

[Option(Name = "rootNamespace", ShortName = "rn", Description = "Root namesapce to use for generating identity code.")]
[Option(Name = "rootNamespace", ShortName = "rn", Description = "Root namespace to use for generating identity code.")]
public string RootNamespace { get; set; }

[Option(Name = "relativeFolderPath", ShortName = "outDir", Description = "Specify the relative output folder path from project where the file needs to be generated, if not specified, file will be generated in the path based on the root namespace.")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.Web.CodeGenerators.Mvc.Identity
{
public class IdentityGeneratorCommandLineModel
{
[Option(Name = "rootNamespace", ShortName = "rn", Description = "Root namesapce to use for generating identity code.")]
[Option(Name = "rootNamespace", ShortName = "rn", Description = "Root namespace to use for generating identity code.")]
public string RootNamespace { get; set; }

[Obsolete("Use --databaseProvider or -dbProvider to configure database type instead")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
{
"Name": "rootNamespace",
"ShortName": "rn",
"Description": "Root namesapce to use for generating identity code."
"Description": "Root namespace to use for generating identity code."
},
{
"Name": "files",
Expand Down
13 changes: 7 additions & 6 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Create.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public virtual string TransformText()

this.Write("@page \"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("/create\"\r\n\r\n@using Microsoft.EntityFrameworkCore\r\n");
this.Write("/create\"\r\n@using Microsoft.EntityFrameworkCore\r\n");

if (!string.IsNullOrEmpty(modelNamespace))
{
Expand All @@ -51,9 +51,9 @@ public virtual string TransformText()
this.Write("@inject ");
this.Write(this.ToStringHelper.ToStringWithCulture(dbContextFactory));
this.Write("\r\n@inject NavigationManager NavigationManager\r\n\r\n<PageTitle>Create</PageTitle>\r\n\r" +
"\n<h1>Create</h1>\r\n\r\n<h4>");
"\n<h1>Create</h1>\r\n\r\n<h2>");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("</h4>\r\n<hr />\r\n<div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <EditForm m" +
this.Write("</h2>\r\n<hr />\r\n<div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <EditForm m" +
"ethod=\"post\" Model=\"");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("\" OnValidSubmit=\"Add");
Expand Down Expand Up @@ -92,13 +92,14 @@ public virtual string TransformText()
this.Write("<button type=\"submit\" class=\"btn btn-primary\">Create</button>\r\n </EditForm" +
">\r\n </div>\r\n</div>\r\n\r\n<div>\r\n <a href=\"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("\">Back to List</a>\r\n</div>\r\n\r\n@code {\r\n\r\n [SupplyParameterFromForm]\r\n publi" +
"c ");
this.Write("\">Back to List</a>\r\n</div>\r\n\r\n@code {\r\n [SupplyParameterFromForm]\r\n private" +
" ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write(" ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write(" { get; set; } = new();\r\n\r\n // To protect from overposting attacks, see https:" +
"//aka.ms/RazorPagesCRUD\r\n public async Task Add");
"//learn.microsoft.com/aspnet/core/blazor/forms/#mitigate-overposting-attacks.\r\n " +
" private async Task Add");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("()\r\n {\r\n using var context = DbFactory.CreateDbContext();\r\n cont" +
"ext.");
Expand Down
10 changes: 4 additions & 6 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Create.tt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
var entityProperties = Model.ModelMetadata.Properties.Where(x => !x.IsPrimaryKey).ToList();
#>
@page "/<#= pluralModelLowerInv #>/create"

@using Microsoft.EntityFrameworkCore
<#
if (!string.IsNullOrEmpty(modelNamespace))
Expand All @@ -30,7 +29,7 @@

<h1>Create</h1>

<h4><#= modelName #></h4>
<h2><#= modelName #></h2>
<hr />
<div class="row">
<div class="col-md-4">
Expand Down Expand Up @@ -62,12 +61,11 @@
</div>

@code {

[SupplyParameterFromForm]
public <#= modelName #> <#= modelName #> { get; set; } = new();
private <#= modelName #> <#= modelName #> { get; set; } = new();

// To protect from overposting attacks, see https://aka.ms/RazorPagesCRUD
public async Task Add<#= modelName #>()
// To protect from overposting attacks, see https://learn.microsoft.com/aspnet/core/blazor/forms/#mitigate-overposting-attacks.
private async Task Add<#= modelName #>()
{
using var context = DbFactory.CreateDbContext();
context.<#= Model.ModelMetadata.EntitySetName #>.Add(<#= modelName #>);
Expand Down
16 changes: 8 additions & 8 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Delete.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public virtual string TransformText()

this.Write("@page \"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("/delete\"\r\n\r\n@using Microsoft.EntityFrameworkCore\r\n");
this.Write("/delete\"\r\n@using Microsoft.EntityFrameworkCore\r\n");

if (!string.IsNullOrEmpty(modelNamespace))
{
Expand All @@ -54,11 +54,11 @@ public virtual string TransformText()

this.Write("@inject ");
this.Write(this.ToStringHelper.ToStringWithCulture(dbContextFactory));
this.Write("\r\n@inject NavigationManager NavigationManager\r\n\r\n\r\n<PageTitle>Delete</PageTitle>\r" +
"\n\r\n<h1>Delete</h1>\r\n\r\n<h3>Are you sure you want to delete this?</h3>\r\n<div>\r\n " +
" <h4>");
this.Write("\r\n@inject NavigationManager NavigationManager\r\n\r\n<PageTitle>Delete</PageTitle>\r\n\r" +
"\n<h1>Delete</h1>\r\n\r\n<p>Are you sure you want to delete this?</p>\r\n<div>\r\n <h2" +
">");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("</h4>\r\n <hr />\r\n @if (");
this.Write("</h2>\r\n <hr />\r\n @if (");
this.Write(this.ToStringHelper.ToStringWithCulture(modelNameLowerInv));
this.Write(" is null)\r\n {\r\n <p><em>Loading...</em></p>\r\n }\r\n else {\r\n");

Expand All @@ -83,11 +83,11 @@ public virtual string TransformText()
this.Write(this.ToStringHelper.ToStringWithCulture(modelNameLowerInv));
this.Write(" is null)\">Delete</button> |\r\n <a href=\"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("\">Back to List</a>\r\n </EditForm>\r\n }\r\n</div>\r\n\r\n@code {\r\n ");
this.Write("\">Back to List</a>\r\n </EditForm>\r\n }\r\n</div>\r\n\r\n@code {\r\n private ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("? ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelNameLowerInv));
this.Write(";\r\n\r\n [SupplyParameterFromQuery]\r\n public ");
this.Write(";\r\n\r\n [SupplyParameterFromQuery]\r\n private ");
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyShortTypeName));
this.Write(" ");
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyName));
Expand All @@ -103,7 +103,7 @@ public virtual string TransformText()
this.Write(");\r\n\r\n if (");
this.Write(this.ToStringHelper.ToStringWithCulture(modelNameLowerInv));
this.Write(" is null)\r\n {\r\n NavigationManager.NavigateTo(\"notfound\");\r\n " +
" }\r\n }\r\n\r\n public async Task Delete");
" }\r\n }\r\n\r\n private async Task Delete");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("()\r\n {\r\n using var context = DbFactory.CreateDbContext();\r\n cont" +
"ext.");
Expand Down
12 changes: 5 additions & 7 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Delete.tt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
var entityProperties = Model.ModelMetadata.Properties.Where(x => !x.IsPrimaryKey).ToList();
#>
@page "/<#= pluralModelLowerInv #>/delete"

@using Microsoft.EntityFrameworkCore
<#
if (!string.IsNullOrEmpty(modelNamespace))
Expand All @@ -30,14 +29,13 @@
@inject <#= dbContextFactory #>
@inject NavigationManager NavigationManager


<PageTitle>Delete</PageTitle>

<h1>Delete</h1>

<h3>Are you sure you want to delete this?</h3>
<p>Are you sure you want to delete this?</p>
<div>
<h4><#= modelName #></h4>
<h2><#= modelName #></h2>
<hr />
@if (<#= modelNameLowerInv #> is null)
{
Expand All @@ -62,10 +60,10 @@
</div>

@code {
<#= modelName #>? <#= modelNameLowerInv #>;
private <#= modelName #>? <#= modelNameLowerInv #>;

[SupplyParameterFromQuery]
public <#= primaryKeyShortTypeName #> <#= primaryKeyName #> { get; set; }
private <#= primaryKeyShortTypeName #> <#= primaryKeyName #> { get; set; }

protected override async Task OnInitializedAsync()
{
Expand All @@ -78,7 +76,7 @@
}
}

public async Task Delete<#= modelName #>()
private async Task Delete<#= modelName #>()
{
using var context = DbFactory.CreateDbContext();
context.<#= entitySetName #>.Remove(<#= modelNameLowerInv #>!);
Expand Down
10 changes: 5 additions & 5 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Details.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public virtual string TransformText()

this.Write("@page \"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("/details\"\r\n\r\n@using Microsoft.EntityFrameworkCore\r\n");
this.Write("/details\"\r\n@using Microsoft.EntityFrameworkCore\r\n");

if (!string.IsNullOrEmpty(modelNamespace))
{
Expand All @@ -55,9 +55,9 @@ public virtual string TransformText()
this.Write("@inject ");
this.Write(this.ToStringHelper.ToStringWithCulture(dbContextFactory));
this.Write("\r\n@inject NavigationManager NavigationManager\r\n\r\n<PageTitle>Details</PageTitle>\r\n" +
"\r\n<h1>Details</h1>\r\n\r\n<div>\r\n <h4>");
"\r\n<h1>Details</h1>\r\n\r\n<div>\r\n <h2>");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("</h4>\r\n <hr />\r\n @if (");
this.Write("</h2>\r\n <hr />\r\n @if (");
this.Write(this.ToStringHelper.ToStringWithCulture(modelNameLowerInv));
this.Write(" is null)\r\n {\r\n <p><em>Loading...</em></p>\r\n }\r\n else {\r\n " +
"<dl class=\"row\">\r\n");
Expand All @@ -83,11 +83,11 @@ public virtual string TransformText()
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyName));
this.Write("}\")\">Edit</a> |\r\n <a href=\"@($\"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("\")\">Back to List</a>\r\n </div>\r\n }\r\n</div>\r\n\r\n@code {\r\n ");
this.Write("\")\">Back to List</a>\r\n </div>\r\n }\r\n</div>\r\n\r\n@code {\r\n private ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("? ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelNameLowerInv));
this.Write(";\r\n\r\n [SupplyParameterFromQuery]\r\n public ");
this.Write(";\r\n\r\n [SupplyParameterFromQuery]\r\n private ");
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyShortTypeName));
this.Write(" ");
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyName));
Expand Down
7 changes: 3 additions & 4 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Details.tt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
var entityProperties = Model.ModelMetadata.Properties.Where(x => !x.IsPrimaryKey).ToList();
#>
@page "/<#= pluralModelLowerInv #>/details"

@using Microsoft.EntityFrameworkCore
<#
if (!string.IsNullOrEmpty(modelNamespace))
Expand All @@ -35,7 +34,7 @@
<h1>Details</h1>

<div>
<h4><#= modelName #></h4>
<h2><#= modelName #></h2>
<hr />
@if (<#= modelNameLowerInv #> is null)
{
Expand All @@ -59,10 +58,10 @@
</div>

@code {
<#= modelName #>? <#= modelNameLowerInv #>;
private <#= modelName #>? <#= modelNameLowerInv #>;

[SupplyParameterFromQuery]
public <#= primaryKeyShortTypeName #> <#= primaryKeyName #> { get; set; }
private <#= primaryKeyShortTypeName #> <#= primaryKeyName #> { get; set; }

protected override async Task OnInitializedAsync()
{
Expand Down
20 changes: 10 additions & 10 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Edit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ public virtual string TransformText()
var entityProperties = Model.ModelMetadata.Properties.Where(x => !x.IsPrimaryKey).ToList();

this.Write("@page \"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModel));
this.Write("/edit\"\r\n\r\n@using Microsoft.EntityFrameworkCore\r\n");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("/edit\"\r\n@using Microsoft.EntityFrameworkCore\r\n");

if (!string.IsNullOrEmpty(modelNamespace))
{
Expand All @@ -55,9 +55,9 @@ public virtual string TransformText()
this.Write("@inject ");
this.Write(this.ToStringHelper.ToStringWithCulture(dbContextFactory));
this.Write("\r\n@inject NavigationManager NavigationManager\r\n\r\n<PageTitle>Edit</PageTitle>\r\n\r\n<" +
"h1>Edit</h1>\r\n\r\n<h4>");
"h1>Edit</h1>\r\n\r\n<h2>");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("</h4>\r\n<hr />\r\n@if (");
this.Write("</h2>\r\n<hr />\r\n@if (");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write(" is null)\r\n{\r\n <p><em>Loading...</em></p>\r\n}\r\nelse\r\n{\r\n <div class=\"row\">\r\n" +
" <div class=\"col-md-4\">\r\n <EditForm method=\"post\" Model=\"");
Expand Down Expand Up @@ -106,12 +106,12 @@ public virtual string TransformText()
this.Write(" <button type=\"submit\" class=\"btn btn-primary\">Save</button>\r\n " +
" </EditForm>\r\n </div>\r\n </div>\r\n}\r\n\r\n<div>\r\n <a href=\"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("\">Back to List</a>\r\n</div>\r\n\r\n@code {\r\n [SupplyParameterFromQuery]\r\n public" +
" ");
this.Write("\">Back to List</a>\r\n</div>\r\n\r\n@code {\r\n [SupplyParameterFromQuery]\r\n privat" +
"e ");
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyShortTypeName));
this.Write(" ");
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyName));
this.Write(" { get; set; }\r\n\r\n [SupplyParameterFromForm]\r\n public ");
this.Write(" { get; set; }\r\n\r\n [SupplyParameterFromForm]\r\n private ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("? ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
Expand All @@ -133,8 +133,8 @@ public virtual string TransformText()
}
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see https://aka.ms/RazorPagesCRUD.
public async Task Update");
// For more information, see https://learn.microsoft.com/aspnet/core/blazor/forms/#mitigate-overposting-attacks.
private async Task Update");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("()\r\n {\r\n using var context = DbFactory.CreateDbContext();\r\n cont" +
"ext.Attach(");
Expand All @@ -151,7 +151,7 @@ public virtual string TransformText()
" }\r\n else\r\n {\r\n throw;\r\n " +
" }\r\n }\r\n\r\n NavigationManager.NavigateTo(\"/");
this.Write(this.ToStringHelper.ToStringWithCulture(pluralModelLowerInv));
this.Write("\");\r\n }\r\n\r\n bool ");
this.Write("\");\r\n }\r\n\r\n private bool ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write("Exists(");
this.Write(this.ToStringHelper.ToStringWithCulture(primaryKeyShortTypeName));
Expand Down
15 changes: 7 additions & 8 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Edit.tt
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@
string entitySetName = Model.ModelMetadata.EntitySetName;
var entityProperties = Model.ModelMetadata.Properties.Where(x => !x.IsPrimaryKey).ToList();
#>
@page "/<#= pluralModel #>/edit"

@page "/<#= pluralModelLowerInv #>/edit"
@using Microsoft.EntityFrameworkCore
<#
if (!string.IsNullOrEmpty(modelNamespace))
Expand All @@ -34,7 +33,7 @@

<h1>Edit</h1>

<h4><#= modelName #></h4>
<h2><#= modelName #></h2>
<hr />
@if (<#= modelName #> is null)
{
Expand Down Expand Up @@ -75,10 +74,10 @@ else

@code {
[SupplyParameterFromQuery]
public <#= primaryKeyShortTypeName #> <#= primaryKeyName #> { get; set; }
private <#= primaryKeyShortTypeName #> <#= primaryKeyName #> { get; set; }

[SupplyParameterFromForm]
public <#= modelName #>? <#= modelName #> { get; set; }
private <#= modelName #>? <#= modelName #> { get; set; }

protected override async Task OnInitializedAsync()
{
Expand All @@ -92,8 +91,8 @@ else
}

// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see https://aka.ms/RazorPagesCRUD.
public async Task Update<#= modelName #>()
// For more information, see https://learn.microsoft.com/aspnet/core/blazor/forms/#mitigate-overposting-attacks.
private async Task Update<#= modelName #>()
{
using var context = DbFactory.CreateDbContext();
context.Attach(<#= modelName #>!).State = EntityState.Modified;
Expand All @@ -117,7 +116,7 @@ else
NavigationManager.NavigateTo("/<#= pluralModelLowerInv #>");
}

bool <#= modelName #>Exists(<#= primaryKeyShortTypeName #> <#= primaryKeyNameLowerInv #>)
private bool <#= modelName #>Exists(<#= primaryKeyShortTypeName #> <#= primaryKeyNameLowerInv #>)
{
using var context = DbFactory.CreateDbContext();
return context.<#= entitySetName #>.Any(e => e.<#= primaryKeyName #> == <#= primaryKeyNameLowerInv #>);
Expand Down
Loading

0 comments on commit 97419af

Please sign in to comment.