using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.ComponentModel; using System.Xml.Linq; using System.Runtime.CompilerServices; namespace Models { /// /// Représente une oeuvre dans le système de gestion de listes d'anime. /// [DataContract] public class Oeuvre : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; void OnPropertyChanged([CallerMemberName] string? propertyName = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); /// /// Obtient ou définit le nom de l'oeuvre. /// [DataMember] public string Nom { get; private set; } /// /// Obtient ou définit les genres de l'oeuvre. /// [DataMember] public List Genre { get; private set; } /// /// Obtient ou définit le type de l'oeuvre. /// [DataMember] public string Type { get; private set; } /// /// Obtient ou définit la description de l'oeuvre. /// [DataMember] public string Description { get; private set; } /// /// Obtient ou définit la note de l'oeuvre. /// [DataMember] public int Note { get => note; set { if (note == value) return; note = value; OnPropertyChanged(); } } private int note; /// /// Obtient ou définit le nombre d'épisodes de l'oeuvre. /// [DataMember] public int NbEpisodes { get; private set; } /// /// Obtient ou définit l'affiche de l'oeuvre. /// [DataMember] public string Affiche { get; private set; } [DataMember] public int NombresEpVu { get; set; } /// /// Initialise une nouvelle instance de la classe Oeuvre avec les informations spécifiées. /// /// Le nom de l'oeuvre. /// Les genres de l'oeuvre. /// Le type de l'oeuvre. /// La description de l'oeuvre. /// La note de l'oeuvre. /// Le nombre d'épisodes de l'oeuvre. /// L'affiche de l'oeuvre. public Oeuvre(string nom, List genre, string type, string description, int note, int nbEpisode, string affiche) { Nom = nom; Genre = genre; Type = type; Description = description; Note = note; NbEpisodes = nbEpisode; Affiche = affiche; } /// /// Initialise une nouvelle instance de la classe Oeuvre avec les informations spécifiées. /// /// Le nom de l'oeuvre. /// Le type de l'oeuvre. /// La description de l'oeuvre. /// Le nombre d'épisodes de l'oeuvre. /// L'affiche de l'oeuvre. public Oeuvre(string nom, string type, string description, int nbEpisode, string affiche) { Nom = nom; Genre = new List(); Type = type; Description = description; NbEpisodes = nbEpisode; Affiche = affiche; } /// /// Méthode permettant d'ajouter un certain nombre d'épisodes à l'oeuvre. /// /// Le nombre d'épisodes à ajouter. public void AjouterEpisode(int nb) { NbEpisodes = NbEpisodes + nb; } } }