using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Modèle { public class Requin : IEquatable { public string Nom { get; private set; } public string NomSci { get; private set; } public string Description { get; private set; } public string Photo { get; private set; } public string Video { get; private set; } public string PhotoCarte { get; private set; } public Conservation StatutCons { get; private set; } public string FunFact { get; private set; } public List Repartition { get; private set; } public Requin(string nom, string nomSci, string description, string photo, string video, string photoCarte, Conservation statutCons, List repartition, string funFact) { Nom = nom; NomSci = nomSci; Description = description; Photo = photo; Video = video; PhotoCarte = photoCarte; StatutCons = statutCons; Repartition = repartition; FunFact = funFact; } public Requin(string nom, string nomSci, string description, string photo, string video, string photoCarte, Conservation statutCons, List repartition, List 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]; } public override string ToString() { return Nom + " " + NomSci + " " + Description + " " + StatutCons + " " + FunFact + " " + Photo; } public void ModiferRequin(string description, string photo, string video, string photoCarte, Conservation statutCons, List repartition, string funFact) { if (! string.IsNullOrWhiteSpace(description)) { Description = description; } if(! string.IsNullOrWhiteSpace(photo)) { Photo = photo; } if(!string.IsNullOrWhiteSpace(video)) { Video = video; } if (!string.IsNullOrWhiteSpace(photoCarte)) { Photo = photoCarte; } if (statutCons != Conservation.NE) { StatutCons = statutCons; } if (!string.IsNullOrWhiteSpace(funFact)) { FunFact = funFact; } if (repartition.Count()!= 0){ Repartition.Clear(); foreach(Zone z in repartition) { Repartition.Add(z); } } } public bool Equals(Requin r) { return r.Nom == Nom && r.NomSci == NomSci; } 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); } public override int GetHashCode() { return Nom.GetHashCode() ^ NomSci.GetHashCode(); } } }