diff --git a/ProjetBlazor/App.razor b/ProjetBlazor/App.razor index 6fd3ed1..383d5a5 100644 --- a/ProjetBlazor/App.razor +++ b/ProjetBlazor/App.razor @@ -1,12 +1,14 @@ - - - - - - - Not found - + + + + + + + + Not found +

Sorry, there's nothing at this address.

-
-
-
+
+
+
+ diff --git a/ProjetBlazor/Modals/DeleteConfirmation.razor b/ProjetBlazor/Modals/DeleteConfirmation.razor new file mode 100644 index 0000000..dce375a --- /dev/null +++ b/ProjetBlazor/Modals/DeleteConfirmation.razor @@ -0,0 +1,10 @@ +
+ +

+ Voulez vous vraiment supprimmer @musique.titre ? +

+ + + + +
\ No newline at end of file diff --git a/ProjetBlazor/Modals/DeleteConfirmation.razor.cs b/ProjetBlazor/Modals/DeleteConfirmation.razor.cs new file mode 100644 index 0000000..52308a8 --- /dev/null +++ b/ProjetBlazor/Modals/DeleteConfirmation.razor.cs @@ -0,0 +1,38 @@ +using Blazored.Modal.Services; +using Blazored.Modal; +using Microsoft.AspNetCore.Components; +using ProjetBlazor.Services; +using ProjetBlazor.Modeles; + +namespace ProjetBlazor.Modals +{ + public partial class DeleteConfirmation + { + [CascadingParameter] + public BlazoredModalInstance ModalInstance { get; set; } + + [Inject] + public IDataService DataService { get; set; } + + [Parameter] + public int Id { get; set; } + + private Musique musique = new Musique(); + + protected override async Task OnInitializedAsync() + { + // Get the musique + musique = await DataService.GetById(Id); + } + + void ConfirmDelete() + { + ModalInstance.CloseAsync(ModalResult.Ok(true)); + } + + void Cancel() + { + ModalInstance.CancelAsync(); + } + } +} diff --git a/ProjetBlazor/Pages/MusiquesListe.razor.cs b/ProjetBlazor/Pages/MusiquesListe.razor.cs index f671416..8dc48a8 100644 --- a/ProjetBlazor/Pages/MusiquesListe.razor.cs +++ b/ProjetBlazor/Pages/MusiquesListe.razor.cs @@ -1,6 +1,9 @@ -using Blazorise.DataGrid; +using Blazored.Modal; +using Blazored.Modal.Services; +using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; +using ProjetBlazor.Modals; using ProjetBlazor.Modeles; using ProjetBlazor.Services; @@ -24,6 +27,8 @@ namespace ProjetBlazor.Pages [Inject] public NavigationManager NavigationManager { get; set; } + [CascadingParameter] + public IModalService Modal { get; set; } private async Task OnReadData(DataGridReadDataEventArgs e) { @@ -38,13 +43,26 @@ namespace ProjetBlazor.Pages } } - private async Task OnDelete(int id) + + private async void OnDelete(int id) { + var parameters = new ModalParameters(); + parameters.Add(nameof(Musique.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("MusiquesListe",true); + NavigationManager.NavigateTo("list", true); } - + } + } diff --git a/ProjetBlazor/Pages/_Layout.cshtml b/ProjetBlazor/Pages/_Layout.cshtml index a853866..f5b2802 100644 --- a/ProjetBlazor/Pages/_Layout.cshtml +++ b/ProjetBlazor/Pages/_Layout.cshtml @@ -11,6 +11,7 @@ + @@ -32,5 +33,6 @@ + diff --git a/ProjetBlazor/Program.cs b/ProjetBlazor/Program.cs index 8009e15..64163a3 100644 --- a/ProjetBlazor/Program.cs +++ b/ProjetBlazor/Program.cs @@ -1,3 +1,4 @@ +using Blazored.Modal; using Blazorise; using Blazorise.Bootstrap; using Blazorise.Icons.FontAwesome; @@ -18,6 +19,7 @@ builder.Services builder.Services.AddScoped(); builder.Services.AddHttpClient(); +builder.Services.AddBlazoredModal(); // Add the controller of the app builder.Services.AddControllers(); diff --git a/ProjetBlazor/ProjetBlazor.csproj b/ProjetBlazor/ProjetBlazor.csproj index d99b04e..177607e 100644 --- a/ProjetBlazor/ProjetBlazor.csproj +++ b/ProjetBlazor/ProjetBlazor.csproj @@ -11,6 +11,7 @@ + diff --git a/ProjetBlazor/_Imports.razor b/ProjetBlazor/_Imports.razor index c4f493d..9d4b205 100644 --- a/ProjetBlazor/_Imports.razor +++ b/ProjetBlazor/_Imports.razor @@ -8,4 +8,8 @@ @using Microsoft.JSInterop @using ProjetBlazor @using ProjetBlazor.Shared -@using Blazorise.DataGrid; +@using Blazorise.DataGrid +@using Blazored.Modal +@using Blazored.Modal.Services + +