/// \file Ile.cs /// \brief Contient la définition de la classe Ile. /// /// La classe Ile représente les différents iles avec leur nom, nom romanisé, leur région de localisation, la première fois qu'on les vois dans le manga/animé, une description de l'île et une description géographique d'où se situe l'île. /// using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace Model.Classes { /// /// Représente une île dans le monde de One Piece. /// [DataContract(Name = "ile")] public class Ile : ObjetOhara { /// /// Obtient ou définit le nom romanisé de l'île. /// [DataMember(Name = "nomromanise")] private string? nomromanise; public string? NomRomanise { get => nomromanise; set { nomromanise = value; OnPropertyChanged(); } } /// /// Obtient ou définit la région où se situe l'île. /// [DataMember(Name = "region")] private string? region; public string? Region { get=>region; set { region = value; OnPropertyChanged(); } } /// /// Obtient ou définit le numéro du premier chapitre où l'île est mentionnée. /// [DataMember(Name = "premierchap")] private int premierchap; public int PremierChap { get=>premierchap; set { premierchap = value; OnPropertyChanged(); } } /// /// Obtient ou définit le numéro du premier épisode où l'île est mentionnée. /// [DataMember(Name = "premierep")] private int premierep; public int PremierEp { get=>premierep; set { premierep = value; OnPropertyChanged(); } } /// /// Obtient ou définit la description de l'île. /// [DataMember(Name = "description")] private string? description; public string? Description { get=>description; set { description = value; OnPropertyChanged(); } } /// /// Obtient ou définit la situation géographique de l'île. /// [DataMember(Name = "geographie")] private string? geographie; public string? Geographie { get=>geographie; set { geographie = value; OnPropertyChanged(); } } /// /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés. /// /// Le nom de l'île. /// Le nom romanisé de l'île. /// La région où se situe l'île. /// Le numéro du premier chapitre où l'île est mentionnée. /// Le numéro du premier épisode où l'île est mentionnée. /// La description de l'île. /// La situation géographique de l'île. public Ile(string nom, string nomRomanise, string region, int premierChap, int premierEp, string description, string geographie) : base(nom) { if (String.IsNullOrWhiteSpace(nomRomanise)) nomRomanise = "Nom romanisé de l'île..."; NomRomanise = nomRomanise; if (String.IsNullOrWhiteSpace(region)) region = "Grand Line"; Region = region; if (premierEp < 0) { PremierEp = 0; } else { PremierEp = premierEp; } if (premierChap < 0) { PremierChap = 0; } else { PremierChap = premierChap; } if (String.IsNullOrWhiteSpace(description)) description = "Description de l'île ..."; Description = description; if (String.IsNullOrWhiteSpace(geographie)) geographie = "Situation géographique de l'ile..."; Geographie = geographie; } /// /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés, y compris une image. /// /// Le nom de l'île. /// Le nom romanisé de l'île. /// La région où se situe l'île. /// Le numéro du premier chapitre où l'île est mentionnée. /// Le numéro du premier épisode où l'île est mentionnée. /// La description de l'île. /// La situation géographique de l'île. /// Le chemin de l'image représentant l'île. public Ile(string nom, string nomRomanise, string region, int premierChap, int premierEp, string description, string geographie, string image) : this(nom, nomRomanise, region, premierChap, premierEp, description, geographie) { if(String.IsNullOrWhiteSpace(image)) { image = "baseimage.png"; } Image = image; } /// /// Détermine si l'objet spécifié est égal à l'objet actuel. /// /// L'objet à comparer avec l'objet actuel. /// true si les objets sont égaux ; sinon, false. public override bool Equals(object? obj) { if (obj == null) return false; if (this.GetType() != obj.GetType()) { return false; } else { Ile o = (Ile)obj; return o.Nom == Nom; } } /// /// Retourne le code de hachage de l'objet. /// /// Le code de hachage de l'objet. public override int GetHashCode() { return HashCode.Combine(NomRomanise, Region, PremierChap, PremierEp, Description, Geographie); } /// /// Retourne une chaîne de caractères représentant l'objet actuel. /// /// Une chaîne de caractères représentant l'objet actuel. public override string ToString() { return "Ile : "+ Nom +" "+NomRomanise+" "+Region+" "+PremierChap+" "+PremierEp+" "+Description+" "+Geographie+" "+Image; } } }