From fc6b7def6bb9af6b3c6953c94a17a8051f656aa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 4 Sep 2020 16:32:19 +0300 Subject: [PATCH] Introduce IUiMessageService and implement delete confirmation for roles. --- .../WebAssembly/IUiMessageService.cs | 9 ++++++++ .../WebAssembly/UiMessageService.cs | 22 +++++++++++++++++++ .../Pages/RoleManagement.razor | 3 ++- .../Pages/RoleManagement.razor.cs | 9 ++++++-- .../_Imports.razor | 3 ++- 5 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageService.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageService.cs new file mode 100644 index 0000000000..bad1bab7fc --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageService.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public interface IUiMessageService + { + Task ConfirmAsync(string message, string title = null); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs new file mode 100644 index 0000000000..2e353b5e54 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs @@ -0,0 +1,22 @@ +using System.Threading.Tasks; +using Microsoft.JSInterop; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public class UiMessageService : IUiMessageService, ITransientDependency + { + protected IJSRuntime JsRuntime { get; } + + public UiMessageService(IJSRuntime jsRuntime) + { + JsRuntime = jsRuntime; + } + + public async Task ConfirmAsync(string message, string title = null) + { + //TODO: Implement with sweetalert in a new package + return await JsRuntime.InvokeAsync("confirm", message); + } + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor index 5230456a14..613518e7c8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor @@ -6,6 +6,7 @@ @using Volo.Abp.Identity.Localization @inject IIdentityRoleAppService RoleAppService @inject IStringLocalizer L +@inject IUiMessageService UiMessageService @* ************************* PAGE HEADER ************************* *@ @@ -35,7 +36,7 @@ Edit Manage Permissions - Delete + Delete diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor.cs index e4971c27c8..5b17e2215e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor.cs @@ -107,9 +107,14 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages _editModal.Hide(); } - private async Task DeleteRoleAsync(Guid id) + private async Task DeleteRoleAsync(IdentityRoleDto role) { - await RoleAppService.DeleteAsync(id); + if (!await UiMessageService.ConfirmAsync("Are you sure to delete the role " + role.Name)) + { + return; + } + + await RoleAppService.DeleteAsync(role.Id); await GetRolesAsync(); } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor index c1ac73cf4c..dfd31588f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor @@ -5,7 +5,8 @@ @using Microsoft.AspNetCore.Components.Web @using Microsoft.AspNetCore.Components.WebAssembly.Http @using Microsoft.JSInterop +@using Volo.Abp.AspNetCore.Components.WebAssembly @using MyCompanyName.MyProjectName.Blazor @using MyCompanyName.MyProjectName.Blazor.Shared @using Blazorise -@using Blazorise.DataGrid \ No newline at end of file +@using Blazorise.DataGrid