Aller au contenu principal

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.

  1. Créez une fonction SupprimerEvenement
    Snowfall.Web.Admin/Pages/Evenements/Show.razor
    //...
    async Task SupprimerEvenement()
    {

    }
    //...
  2. Assurez-vous d'avoir un bouton Supprimer et connectez-le à la fonction SupprimerEvenement
    Snowfall.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>
  3. Injectez le ToastService pour les notifications et NavigationManger
    Snowfall.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
  4. 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.