|
|
@ -12,62 +12,150 @@ using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Models
|
|
|
|
namespace Models
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Représente un jeu-vidéo dans sa totalité, avec ses paramètres.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
[DataContract]
|
|
|
|
[DataContract]
|
|
|
|
public class Jeu
|
|
|
|
public class Jeu
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit le nom du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>Nom du jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Nom { get; private set; }
|
|
|
|
public string Nom { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit le résumé du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>Description résumée du jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Resume { get; private set; }
|
|
|
|
public string Resume { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit la date de sortie du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>La date de sortie du jeu (sans format préalable).</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Sortie { get; private set; }
|
|
|
|
public string Sortie { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit la liste des plateformes du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>La liste des plateformes du jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Plateformes { get; private set; }
|
|
|
|
public List<string> ListPlateformes { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit le développeur du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>Studio-développeur du jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Developpeur { get; private set; }
|
|
|
|
public string Developpeur { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit l'éditeur du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>Studio-éditeur du jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Editeur { get; private set; }
|
|
|
|
public string Editeur { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit la note du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>La note du jeu (sur 10).</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public double Note { get; private set; }
|
|
|
|
public double Note { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit le nombre de téléchargements du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>Le nombre de téléchargements du jeu (en milliers).</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public int NbTelechargement { get; private set; }
|
|
|
|
public int NbTelechargement { get; private set; }
|
|
|
|
//[DataMember]
|
|
|
|
|
|
|
|
//public List<(string,string)> Revendeurs { get; private set; }
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit la liste des genres du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>La liste des genres du jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Genres { get; private set; }
|
|
|
|
public List<string> ListGenres { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit l'image du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>L'image du jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public string Image { get; private set; }
|
|
|
|
public string Image { get; private set; }
|
|
|
|
[DataMember]
|
|
|
|
|
|
|
|
public ObservableCollection<(string,double,string)> ListeAvis { get; private set; }
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit le nombre de favoris du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>Le nombre d'utilisateur qui aiment le jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public int NbFavoris { get; private set; }
|
|
|
|
public int NbFavoris { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit le nombre de copies possédées du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>Le nombre d'utilisateur qui possèdent le jeu.</value>
|
|
|
|
[DataMember]
|
|
|
|
[DataMember]
|
|
|
|
public int NbPossedes { get; private set; }
|
|
|
|
public int NbPossedes { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Obtient ou définit la liste des avis du jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <value>La liste des avis du jeu.</value>
|
|
|
|
|
|
|
|
[DataMember]
|
|
|
|
|
|
|
|
public ObservableCollection<(string, double, string)> ListAvis { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Constructeur qui initialise une nouvelle instance de la classe <see cref="Jeu"/>.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="nom">Le nom du jeu.</param>
|
|
|
|
|
|
|
|
/// <param name="resume">Le résumé du jeu.</param>
|
|
|
|
|
|
|
|
/// <param name="sortie">La date de sortie du jeu.</param>
|
|
|
|
|
|
|
|
/// <param name="plateformes">La liste des plateformes du jeu (séparées par des espaces).</param>
|
|
|
|
|
|
|
|
/// <param name="developpeur">Le développeur du jeu.</param>
|
|
|
|
|
|
|
|
/// <param name="editeur">L'éditeur du jeu.</param>
|
|
|
|
|
|
|
|
/// <param name="note">La note du jeu.</param>
|
|
|
|
|
|
|
|
/// <param name="nbTelechargement">Le nombre de téléchargements du jeu.</param>
|
|
|
|
|
|
|
|
/// <param name="genres">La liste des genres du jeu (séparés par des espaces).</param>
|
|
|
|
|
|
|
|
/// <param name="image">L'image du jeu.</param>
|
|
|
|
public Jeu(string nom, string resume, string sortie, string plateformes, string developpeur, string editeur, double note, int nbTelechargement, string genres, string image)
|
|
|
|
public Jeu(string nom, string resume, string sortie, string plateformes, string developpeur, string editeur, double note, int nbTelechargement, string genres, string image)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Nom = nom;
|
|
|
|
Nom = nom;
|
|
|
|
Resume = resume;
|
|
|
|
Resume = resume;
|
|
|
|
Sortie = sortie;
|
|
|
|
Sortie = sortie;
|
|
|
|
Plateformes = plateformes;
|
|
|
|
ListPlateformes = plateformes.Split(' ').ToList();
|
|
|
|
Developpeur = developpeur;
|
|
|
|
Developpeur = developpeur;
|
|
|
|
Editeur = editeur;
|
|
|
|
Editeur = editeur;
|
|
|
|
Note = note;
|
|
|
|
Note = note;
|
|
|
|
NbTelechargement = nbTelechargement;
|
|
|
|
NbTelechargement = nbTelechargement;
|
|
|
|
//Revendeurs = revendeurs;
|
|
|
|
ListGenres = genres.Split(' ').ToList();
|
|
|
|
Genres = genres;
|
|
|
|
|
|
|
|
Image = image;
|
|
|
|
Image = image;
|
|
|
|
ListeAvis = new ObservableCollection<(string, double, string)>();
|
|
|
|
ListAvis = new ObservableCollection<(string, double, string)>();
|
|
|
|
NbFavoris = 0;
|
|
|
|
NbFavoris = 0;
|
|
|
|
NbPossedes = 0;
|
|
|
|
NbPossedes = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Ajoute un avis au jeu.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="pseudo">Le pseudo de l'utilisateur donnant l'avis.</param>
|
|
|
|
|
|
|
|
/// <param name="note">La note donnée par l'utilisateur (sur 10).</param>
|
|
|
|
|
|
|
|
/// <param name="commentaire">Le commentaire de l'utilisateur.</param>
|
|
|
|
public void AjouterAvis(string pseudo, double note, string commentaire)
|
|
|
|
public void AjouterAvis(string pseudo, double note, string commentaire)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
this.ListeAvis.Add((pseudo, note, commentaire));
|
|
|
|
this.ListAvis.Add((pseudo, note, commentaire));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override bool Equals(object obj)
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Détermine si l'objet spécifié est égal à l'objet actuel.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="obj">L'objet à comparer avec l'objet actuel (via le Nom et la Date de Sortie).</param>
|
|
|
|
|
|
|
|
/// <returns><see langword="true"/> si les objets sont égaux, sinon <see langword="false"/>.</returns>
|
|
|
|
|
|
|
|
public override bool Equals(object? obj)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (obj == null || GetType() != obj.GetType())
|
|
|
|
if (obj == null || GetType() != obj.GetType())
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
@ -76,6 +164,10 @@ namespace Models
|
|
|
|
return Nom == otherJeu.Nom && Sortie == otherJeu.Sortie;
|
|
|
|
return Nom == otherJeu.Nom && Sortie == otherJeu.Sortie;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Retourne le code de hachage de l'objet actuel.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <returns>Le code de hachage de l'objet actuel.</returns>
|
|
|
|
public override int GetHashCode()
|
|
|
|
public override int GetHashCode()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return HashCode.Combine(Nom, Sortie);
|
|
|
|
return HashCode.Combine(Nom, Sortie);
|
|
|
|