@page "/"
<h2 class="bg-info p-1">Update Role</h2>
@Message
<EditForm Model="@Model" OnSubmit="HandleSubmit">
<input type="hidden" name="roleName" value="@Model.RoleName" />
<input type="hidden" name="roleId" value="@Model.RoleId" />
<table class="table table-bordered table-sm">
<tbody>
<tr>
<th colspan="2">
<h2 class="bg-info p-1 text-white">Add to @Model.RoleName</h2>
</th>
</tr>
@if (Model.NonMembers.Count == 0)
{
<tr><td colspan="2">All Users Are Members</td></tr>
}
else
{
@foreach (var user in Model.NonMembers)
{
<tr>
<td>@user.UserName</td>
<td>
<input type="checkbox" @bind-value="@user.IsChecked" />
</td>
</tr>
}
}
</tbody>
<tbody>
<tr>
<th colspan="2">
<h2 class="bg-info p-1 text-white">Remove From @Model.RoleName</h2>
</th>
</tr>
@if (Model.Members.Count == 0)
{
<tr><td colspan="2">No Users Are Members</td></tr>
}
else
{
@foreach (var user in Model.Members)
{
<tr>
<td>@user.UserName</td>
<td>
<input type="checkbox" @bind-value="@user.IsChecked" />
</td>
</tr>
}
}
</tbody>
</table>
<button type="submit" class="btn btn-primary">Save</button>
</EditForm>
@code {
public class FormModel
{
public List<FormUserModel> Members {get; set;} = new();
public List<FormUserModel> NonMembers {get; set;} = new();
public int RoleId {get; set;}
public string RoleName {get; set;}
}
public class FormUserModel
{
public string Id {get; set;}
public bool IsChecked {get; set;}
public string UserName {get; set;}
}
private FormModel Model { get; set; }
private string? Message { get; set; } = "Hello World!";
private List<string> AddIds { get; set; } = new List<string>();
private List<string> DeleteIds { get; set; } = new List<string>();
protected override void OnInitialized()
{
Model = new FormModel
{
RoleId = 1,
RoleName = "Admin",
Members = new List<FormUserModel>
{
new FormUserModel { Id = "1", UserName = "admin-1" },
new FormUserModel { Id = "2", UserName = "admin-2" },
new FormUserModel { Id = "3", UserName = "admin-3" },
},
NonMembers = new List<FormUserModel>
{
new FormUserModel { Id = "4", UserName = "non-admin-1" },
new FormUserModel { Id = "5", UserName = "non-admin-2" },
new FormUserModel { Id = "6", UserName = "non-admin-3" },
}
};
}
private Task HandleSubmit()
{
var add = Model
.NonMembers
.Where(x => x.IsChecked)
.Select(x => x.Id);
var remove = Model
.Members
.Where(x => x.IsChecked)
.Select(x => x.Id);
Message =
$"Add: {string.Join(", ", add)}. Remove: {string.Join(",", remove)}";
return Task.CompletedTask;
}
}