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.

157 lines
6.0 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émente la méthode IEquatable de Requin
/// </summary>
[DataContract]
public class Requin : IEquatable<Requin>
{
/// <summary>
/// string le nom du requin
/// </summary>
[DataMember]
public string Nom { get; private set; }
/// <summary>
/// string le nom scientifique du requin
/// </summary>
[DataMember]
public string NomSci { get; private set; }
/// <summary>
/// string la description du requin
/// </summary>
[DataMember]
public string Description { get; private set; }
/// <summary>
/// string l'URL de la photo du requin
/// </summary>
[DataMember]
public string Photo { get; private set; }
/// <summary>
/// string le chemin de la vidéo du requin
/// </summary>
[DataMember]
public string Video { get; private set; }
/// <summary>
/// string l'URL de la photo de la carte de répartition du requin
/// </summary>
[DataMember]
public string PhotoCarte { get; private set; }
/// <summary>
/// Conservation le statut de conservation du requin
/// </summary>
[DataMember]
public Conservation StatutCons { get; private set; }
/// <summary>
/// string fun fact sur les requins
/// </summary>
[DataMember]
public string FunFact { get; private set; }
/// <summary>
/// List de Zone la répartition du requin sur la planète
/// </summary>
[DataMember]
public List<Zone> Repartition { get; private set; }
/// <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 de 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 de Zone la répartition du requin sur la planète</param>
/// <param name="funFacts">List de 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 de 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();
}
}
}