@page "/revues/ajout" @inject ServiceLivresApi Api @inject NavigationManager Navigation @inject EtatReseau Reseau MaBibli — saisir une revue

Saisir une revue

@* Le pendant de « Saisir un livre à la main » : ce qu'on fait quand le code-barres est absent, abîmé, ou que la BnF ne connaît pas le titre. L'entrée normale reste « Ajouter un ouvrage », qui scanne et reconnaît un code 977 tout seul. *@

L'entrée habituelle est Ajouter un ouvrage : le code-barres d'un magazine commence par 977 et l'application le reconnaît seule. Ce formulaire sert quand il n'y a pas de code à lire.

@if (!Reseau.EnLigne) {

Hors ligne : l'enregistrement passe par le serveur. Il redeviendra possible au retour du réseau.

} @if (_erreur is not null) { }

Les numéros s'ajoutent ensuite sur la fiche de la revue : une fiche par revue, les numéros à l'intérieur.

@code { private string _titre = string.Empty; private string _issn = string.Empty; private string _editeur = string.Empty; private bool _enCours; private string? _erreur; /// /// Crée la revue — ou retrouve celle qui existe déjà — puis ouvre sa fiche. /// /// /// Le serveur fait « créer ou retrouver » sur l'ISSN ou le titre : saisir deux fois /// la même revue mène à la même fiche au lieu d'un refus. C'est aussi ce qui permet à une /// revue saisie ici d'apprendre son ISSN au premier scan. /// /// On enchaîne sur la fiche plutôt que de revenir à la liste : le geste n'est jamais /// « créer une revue », c'est toujours « ranger un numéro ». /// /// private async Task EnregistrerAsync() { _enCours = true; _erreur = null; var resultat = await Api.CreerRevueAsync(new EnregistrementRevue { Titre = _titre, Issn = string.IsNullOrWhiteSpace(_issn) ? null : _issn, Editeur = string.IsNullOrWhiteSpace(_editeur) ? null : _editeur, }); _enCours = false; if (!resultat.EstOk || resultat.Valeur is not { } revue) { _erreur = resultat.Erreur ?? "La revue n'a pas pu être créée."; return; } Navigation.NavigateTo($"revues/{revue.Id}"); } }