29-9 Suppression
Dernier arrêt, supprimer un événement!
Fonction SupprimerEvenement du client EvenementClient
La fonction est assez classique par rapport à ce que nous avons vu jusqu'à maintenant. On fait une requête HTTP de type DELETE et on retourne si la requête est un succès ou non en fonction du retour de l'API.
Snowfall.Web.Admin/HttpClients/EvenementHttpClient.cs
/// <summary>
/// Permets de supprimer un événement
/// </summary>
/// <param name="id">Le id de l'événement à supprimer</param>
/// <returns></returns>
public async Task<bool> SupprimerEvenement(int id)
{
string url = $"{BaseApiUrl}/{id}";
var response = await _client.DeleteAsync(url);
return response.IsSuccessStatusCode;
}
Connecter le bouton Supprimer à l'action
Dans la page Show, assurez-vous d'avoir un bouton Supprimer lié à une fonction pour gérer l'événement onClick.
- Créez une fonction
SupprimerEvenementSnowfall.Web.Admin/Pages/Evenements/Show.razor//...
async Task SupprimerEvenement()
{
}
//... - Assurez-vous d'avoir un bouton Supprimer et connectez-le à la fonction
SupprimerEvenementSnowfall.Web.Admin/Pages/Evenements/Show.razor<div class="card-body">
<NavLink class="btn btn-primary" href="@($"/evenements/{Id}/edit")">Modifier</NavLink>
<NavLink class="btn btn-danger" @onclick="SupprimerEvenement">Supprimer</NavLink>
</div> - Injectez le
ToastServicepour les notifications etNavigationMangerSnowfall.Web.Admin/Pages/Evenements/Show.razor@page "/evenements/{Id:int}"
@using System.Net
@using Snowfall.Application.Dtos.Evenements
@using Snowfall.Web.Admin.HttpClients
@inject EvenementHttpClient EvenementHttpClient
@inject ToastService ToastService
@inject NavigationManager NavigationManager - Appeler le client pour supprimer l'événement
Snowfall.Web.Admin/Pages/Evenements/Show.razor
async Task SupprimerEvenement()
{
bool suppression = await EvenementHttpClient.SupprimerEvenement(Id);
if (suppression)
{
ToastService.Notify(new (ToastType.Success, "L'événement a été supprimé"));
NavigationManager.NavigateTo("/evenements");
}
else
{
ToastService.Notify(new (ToastType.Danger, "Impossible de supprimer l'événement"));
}
}
Test
Vous devriez maintenant être en mesure de supprimer un événement, quoi que un peu brutal comme approche puisqu'aucune demande confirmation n'est affichée à l'utilisateur!
Nous allons rectifier la situation à la prochaine étape.