From ca983c9d3ad978eed1853d784554131969cb044d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20B=C3=B6rchers?= Date: Sat, 22 Aug 2020 20:30:05 +0200 Subject: [PATCH] Working on edit button for Members of Security groups --- .../DataModels/Member.cs | 1 - UserService/Pages/MembersBase.cs | 3 ++ UserService/Pages/SecurityGroups.razor | 5 ++++ UserService/Pages/SecurityGroups.razor.cs | 30 ++++++++++++++++--- UserService/Pages/Users.razor.cs | 4 +-- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/UserService.Infrastructure/DataModels/Member.cs b/UserService.Infrastructure/DataModels/Member.cs index 48be61a..836ff5e 100644 --- a/UserService.Infrastructure/DataModels/Member.cs +++ b/UserService.Infrastructure/DataModels/Member.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; namespace UserService.Infrastructure.DataModels { diff --git a/UserService/Pages/MembersBase.cs b/UserService/Pages/MembersBase.cs index fddd685..6b52754 100644 --- a/UserService/Pages/MembersBase.cs +++ b/UserService/Pages/MembersBase.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Blazorise; using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; using UserService.Infrastructure; using UserService.Infrastructure.DataModels; @@ -12,6 +13,8 @@ namespace UserService.Pages { public abstract class MembersBase : ComponentBase where T : Member { + [Inject] protected IJSRuntime JsRuntime { get; set; } = null!; + protected IReadOnlyList? OrganizationUnits { get; set; } protected IReadOnlyList? Members { get; set; } diff --git a/UserService/Pages/SecurityGroups.razor b/UserService/Pages/SecurityGroups.razor index e02635f..e3bdce5 100644 --- a/UserService/Pages/SecurityGroups.razor +++ b/UserService/Pages/SecurityGroups.razor @@ -83,5 +83,10 @@ else + + + + + } \ No newline at end of file diff --git a/UserService/Pages/SecurityGroups.razor.cs b/UserService/Pages/SecurityGroups.razor.cs index 4145a00..34e6a3b 100644 --- a/UserService/Pages/SecurityGroups.razor.cs +++ b/UserService/Pages/SecurityGroups.razor.cs @@ -1,7 +1,9 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading.Tasks; using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; using UserService.DatabaseLayer.Repository; using UserService.Infrastructure.DataModels; @@ -31,8 +33,17 @@ namespace UserService.Pages /// protected override async Task RowDeletingCallback(CancellableRowChange arg) { - - + if (arg == null) throw new ArgumentNullException(nameof(arg)); + var confirmed = await JsRuntime.InvokeAsync("confirm", + $"You are about to delete the security group {arg.Item.CommonName}. Are you sure?").ConfigureAwait(false); + if (confirmed) + { + await SecurityGroupsRepository.DeleteAsync(arg.Item).ConfigureAwait(false); + return; + } + + arg.Cancel = true; + } /// @@ -40,10 +51,21 @@ namespace UserService.Pages { } + protected async void OnButtonClicked(SecurityGroup securityGroup) + { + var confirmed = await JsRuntime.InvokeAsync("confirm", + $"You are about to delete the security group {securityGroup.CommonName}. Are you sure?").ConfigureAwait(false); + } + /// protected override bool OnCustomFilter(SecurityGroup model) { - return true; + if (model == null) throw new ArgumentNullException(nameof(model)); + // We want to accept empty value as valid or otherwise + // datagrid will not show anything. + if (string.IsNullOrEmpty(CustomFilterValue)) return true; + + return model.CommonName.Contains(CustomFilterValue, StringComparison.OrdinalIgnoreCase); } } } \ No newline at end of file diff --git a/UserService/Pages/Users.razor.cs b/UserService/Pages/Users.razor.cs index ac0916b..72ab410 100644 --- a/UserService/Pages/Users.razor.cs +++ b/UserService/Pages/Users.razor.cs @@ -17,8 +17,6 @@ namespace UserService.Pages [Inject] private IUsersRepository UsersRepository { get; set; } = null!; [Inject] private IOrganizationUnitsRepository OrganizationUnitsRepository { get; set; } = null!; - [Inject] private IJSRuntime JsRuntime { get; set; } = null!; - protected override async Task OnInitializedAsync() { Members = await UsersRepository.GetAllAsync().ConfigureAwait(false); @@ -78,7 +76,7 @@ namespace UserService.Pages if (arg == null) throw new ArgumentNullException(nameof(arg)); var user = arg.Item; user.MapFields(arg.Values); - user.Parent = OrganizationUnits?.FirstOrDefault(x => x.Id == (int?) arg.Values[nameof(Node.ParentId)]); + user.Parent = OrganizationUnits?.FirstOrDefault(x => x.Id == (int?)arg.Values[nameof(Node.ParentId)]); var result = await UsersRepository.UpdateAsync(user).ConfigureAwait(false); arg.Cancel = !result; }