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.
130 lines
5.5 KiB
130 lines
5.5 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.Serialization;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Modèle
|
|
{
|
|
|
|
/// <summary>
|
|
/// Classe Requin qui impléemente la méthode IEquatable<Requin>
|
|
/// </summary>
|
|
[DataContract]
|
|
public class Requin : IEquatable<Requin>
|
|
{
|
|
[DataMember]
|
|
public string Nom { get; private set; } //string le nom du requin
|
|
[DataMember]
|
|
public string NomSci { get; private set; } //string le nom scientifique du requin
|
|
[DataMember]
|
|
public string Description { get; private set; } //string la description du requin
|
|
[DataMember]
|
|
public string Photo { get; private set; } //string l'URL de la photo du requin
|
|
[DataMember]
|
|
public string Video { get; private set; } //string le chemin de la vidéo du requin
|
|
[DataMember]
|
|
public string PhotoCarte { get; private set; } //string l'URL de la photo de la carte de répartition du requin
|
|
[DataMember]
|
|
public Conservation StatutCons { get; private set; } //Conservation le statut de conservation du requin
|
|
[DataMember]
|
|
public string FunFact { get; private set; } //string fun fact sur les requins
|
|
[DataMember]
|
|
public List<Zone> Repartition { get; private set; } //List<Zone> la répartition du requin sur la planète
|
|
|
|
|
|
/// <summary>
|
|
/// Constructeur du requin avec fun fact
|
|
/// </summary>
|
|
/// <param name="nom">string le nom du requin</param>
|
|
/// <param name="nomSci">string le nom scientifique du requin</param>
|
|
/// <param name="description">string la description du requin</param>
|
|
/// <param name="photo">string l'URL de la photo du requin</param>
|
|
/// <param name="video">string le chemin de la vidéo du requin</param>
|
|
/// <param name="photoCarte">string l'URL de la photo de la carte de répartition du requin</param>
|
|
/// <param name="statutCons">Conservation le statut de conservation du requin</param>
|
|
/// <param name="repartition">List<Zone> la répartition du requin sur la planète</param>
|
|
/// <param name="funFact">string fun fact sur les requins</param>
|
|
public Requin(string nom, string nomSci, string description, string photo, string video, string photoCarte, Conservation statutCons, List<Zone> repartition, string funFact) {
|
|
Nom = nom;
|
|
NomSci = nomSci;
|
|
Description = description;
|
|
Photo = photo;
|
|
Video = video;
|
|
PhotoCarte = photoCarte;
|
|
StatutCons = statutCons;
|
|
Repartition = repartition;
|
|
FunFact = funFact;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Constructeur du requin sans fun fact qui génère donc une fun fact aléatoire depuis une liste de fun fact
|
|
/// </summary>
|
|
/// <param name="nom">string le nom du requin</param>
|
|
/// <param name="nomSci">string le nom scientifique du requin</param>
|
|
/// <param name="description">string la description du requin</param>
|
|
/// <param name="photo">string l'URL de la photo du requin</param>
|
|
/// <param name="video">string le chemin de la vidéo du requin</param>
|
|
/// <param name="photoCarte">string l'URL de la photo de la carte de répartition du requin</param>
|
|
/// <param name="statutCons">Conservation le statut de conservation du requin</param>
|
|
/// <param name="repartition">List<Zone> la répartition du requin sur la planète</param>
|
|
/// <param name="funFacts">List<string> list de fun facts</param>
|
|
public Requin(string nom, string nomSci, string description, string photo, string video, string photoCarte, Conservation statutCons, List<Zone> repartition, List<string> funFacts)
|
|
{
|
|
Random rnd = new Random();
|
|
int num = rnd.Next(funFacts.Count());
|
|
Nom = nom;
|
|
NomSci = nomSci;
|
|
Description = description;
|
|
Photo = photo;
|
|
Video = video;
|
|
PhotoCarte = photoCarte;
|
|
StatutCons = statutCons;
|
|
Repartition = repartition;
|
|
FunFact = funFacts[num];
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Méthode ToString de la classe Requin
|
|
/// </summary>
|
|
public override string ToString()
|
|
{
|
|
return Nom + " " + NomSci + " " + Description + " " + StatutCons + " " + FunFact + " " + Photo;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Méthode Equals de la classe Requin qui permet de savoir si deux requins sont égaux, regarde l'égalité en fonction des noms et des nom scientifiques
|
|
/// </summary>
|
|
public bool Equals(Requin r)
|
|
{
|
|
return r.Nom == Nom && r.NomSci == NomSci;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Méthode ToString de la classe Requin qui permet l'implémentation de la méthode IEquatable<Requin>
|
|
/// </summary>
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (ReferenceEquals(obj, null)) return false;
|
|
if (ReferenceEquals(obj, this)) return true;
|
|
if (GetType() != obj.GetType()) return false;
|
|
return Equals(obj as Requin);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Méthode GetHashCode de la classe Requin qui permet de récupérer le hash code d'un requin avec son nom et son nom scientifique
|
|
/// </summary>
|
|
public override int GetHashCode()
|
|
{
|
|
return Nom.GetHashCode() ^ NomSci.GetHashCode();
|
|
}
|
|
|
|
|
|
}
|
|
}
|