diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/App.razor b/CetteAppliVaMarcher/CetteAppliVaMarcher/App.razor index 623580d..6346f35 100644 --- a/CetteAppliVaMarcher/CetteAppliVaMarcher/App.razor +++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/App.razor @@ -1,12 +1,14 @@ - - - - - - - Not found - - Sorry, there's nothing at this address. - - - + + + + + + + + Not found + + Sorry, there's nothing at this address. + + + + \ No newline at end of file diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj b/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj index 93b929d..f2eba01 100644 --- a/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj +++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj @@ -8,6 +8,7 @@ + diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Modals/DeleteConfirmation.razor b/CetteAppliVaMarcher/CetteAppliVaMarcher/Modals/DeleteConfirmation.razor new file mode 100644 index 0000000..b565665 --- /dev/null +++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Modals/DeleteConfirmation.razor @@ -0,0 +1,10 @@ + + + + Are you sure you want to delete @item.DisplayName ? + + + Delete + + Cancel + \ No newline at end of file diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Modals/DeleteConfirmation.razor.cs b/CetteAppliVaMarcher/CetteAppliVaMarcher/Modals/DeleteConfirmation.razor.cs new file mode 100644 index 0000000..eea4c62 --- /dev/null +++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Modals/DeleteConfirmation.razor.cs @@ -0,0 +1,38 @@ +using Blazored.Modal; +using Blazored.Modal.Services; +using CetteAppliVaMarcher.Models; +using CetteAppliVaMarcher.Services; +using Microsoft.AspNetCore.Components; + +namespace CetteAppliVaMarcher.Modals +{ + public partial class DeleteConfirmation + { + [CascadingParameter] + public BlazoredModalInstance ModalInstance { get; set; } + + [Inject] + public IDataService DataService { get; set; } + + [Parameter] + public int Id { get; set; } + + private Item item = new Item(); + + protected override async Task OnInitializedAsync() + { + // Get the item + item = await DataService.GetById(Id); + } + + void ConfirmDelete() + { + ModalInstance.CloseAsync(ModalResult.Ok(true)); + } + + void Cancel() + { + ModalInstance.CancelAsync(); + } + } +} diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor index 42d4f39..61faa66 100644 --- a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor +++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor @@ -47,6 +47,7 @@ Editer + OnDelete(context.Id)"> Supprimer \ No newline at end of file diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs index 2c12831..710b31c 100644 --- a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs +++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs @@ -1,5 +1,8 @@ using Blazored.LocalStorage; +using Blazored.Modal; +using Blazored.Modal.Services; using Blazorise.DataGrid; +using CetteAppliVaMarcher.Modals; using CetteAppliVaMarcher.Models; using CetteAppliVaMarcher.Services; using Microsoft.AspNetCore.Components; @@ -17,6 +20,12 @@ namespace CetteAppliVaMarcher.Pages [Inject] public IWebHostEnvironment WebHostEnvironment { get; set; } + + [Inject] + public NavigationManager NavigationManager { get; set; } + + [CascadingParameter] + public IModalService Modal { get; set; } private async Task OnReadData(DataGridReadDataEventArgs e) { @@ -31,5 +40,24 @@ namespace CetteAppliVaMarcher.Pages totalItem = await DataService.Count(); } } + private async void OnDelete(int id) + { + var parameters = new ModalParameters(); + parameters.Add(nameof(Item.Id), id); + + var modal = Modal.Show("Delete Confirmation", parameters); + var result = await modal.Result; + + if (result.Cancelled) + { + return; + } + + await DataService.Delete(id); + + // Reload the page + NavigationManager.NavigateTo("list", true); + } + } } diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/_Layout.cshtml b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/_Layout.cshtml index bd5016a..6397313 100644 --- a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/_Layout.cshtml +++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/_Layout.cshtml @@ -32,6 +32,9 @@ + + +
Sorry, there's nothing at this address.
+ Are you sure you want to delete @item.DisplayName ? +