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;
}
}
}