using System.Text.RegularExpressions; using MangaMap.Model; using static System.Runtime.InteropServices.JavaScript.JSType; using System.Threading.Tasks; using Microsoft.Maui.Storage; namespace MangaMap.Views; public partial class createOeuvre : ContentPage { public Manager my_manager => (App.Current as App).MyManager; private string imagePath; /// /// Constructeur de la page de création d'oeuvre. /// public createOeuvre() { InitializeComponent(); BindingContext = this; } /// /// Gère l'événement de clic sur le bouton de sélection d'image. /// /// L'objet déclencheur de l'événement. /// Les arguments de l'événement. private async void SelectImageClicked(object sender, EventArgs e) { var result = await FilePicker.PickAsync(new PickOptions { FileTypes = FilePickerFileType.Images, PickerTitle = "Pick an image" }); if (result != null) { var stream = await result.OpenReadAsync(); // Utilisez le chemin d'accès à l'image sélectionnée imagePath = result.FullPath; } } /// /// Gère l'événement de clic sur le bouton d'ajout d'oeuvre. /// /// L'objet déclencheur de l'événement. /// Les arguments de l'événement. private async void AddClicked(object sender, System.EventArgs e) { // Récupérer les valeurs des entrées string nom = nameEntry.Text; string type = typeEntry.Text; int nbEp = Convert.ToInt32(nbEpisodeEntry.Text); string description = descriptionEntry.Text; foreach (Oeuvre o in my_manager.Oeuvres) { if (o.Nom == nom) { await DisplayAlert("Erreur", "L'oeuvre existe déjà.", "OK"); return; } } if (string.IsNullOrWhiteSpace(nom) || string.IsNullOrWhiteSpace(description) || string.IsNullOrWhiteSpace(type)) { await DisplayAlert("Erreur", "Veuillez remplir tous les champs.", "OK"); return; } if (nbEp < 0) { await DisplayAlert("Erreur", "Il faut avoir au moins 1 épisode pour l'application.", "OK"); return; } Oeuvre oeuv = new Oeuvre(nom, type, description, nbEp, imagePath); my_manager.Oeuvres.Add(oeuv); my_manager.sauvegarder(); await Navigation.PushAsync(new homePage()); return; } }