You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MapManga/src/Models/Oeuvre.cs

129 lines
4.2 KiB

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