using System; using System.Collections.Generic; using System.Collections.ObjectModel; 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 { [DataContract(Name = "equipage")] public class Equipage : ObjetOhara { [DataMember(Name = "nomromanise")] private string? nomromanise; public string? NomRomanise { get => nomromanise; set { nomromanise = value; OnPropertyChanged(); } } [DataMember(Name = "region")] private string? region; public string? Region { get=> region; set { region = value; OnPropertyChanged(); } } [DataMember(Name = "premierchap")] private int premierchap; public int PremierChap { get=>premierchap; set { premierchap = value; OnPropertyChanged(); } } [DataMember(Name = "premierep")] private int premierep; public int PremierEp { get=>premierep; set { premierep = value; OnPropertyChanged(); } } [DataMember(Name = "statut")] private bool statut; public bool Statut { get=>statut; set { statut = value; OnPropertyChanged(); } } [DataMember(Name = "description")] private string? description; public string? Description { get=>description; set { description = value; OnPropertyChanged(); } } [DataMember(Name = "capitaine")] private Personnage? capitaine; public Personnage? Capitaine { get=>capitaine; set { capitaine = value; OnPropertyChanged(); } } [DataMember(Name = "membre")] private ObservableCollection membre = new ObservableCollection(); public IReadOnlyCollection Membre { get=>membre; } public void AjouterMembre(Personnage? p) { if(p!=null) membre.Add(p); } public void RetirerMembre(Personnage? p) { if(p!=null) membre.Remove(p); } public void ViderMembre() => membre.Clear(); [DataMember(Name = "allie")] private ObservableCollection allie = new ObservableCollection(); public IReadOnlyCollection Allie { get => allie; } public void AjouterAllie(Equipage? p) { if (p != null) allie.Add(p); } public void RetirerAllie(Equipage? p) { if (p != null) allie.Remove(p); } public void ViderAllie() => allie.Clear(); public Equipage(string nom, string nomRomanise, string region, int premierChap, int premierEp, bool statut, string description) : base(nom) { NomRomanise = nomRomanise; Region = region; if (premierEp < 0) { PremierEp = 0; } else { PremierEp = premierEp; } if (premierChap < 0) { PremierChap = 0; } else { PremierChap = premierChap; } Statut = statut; Description = description; } public Equipage(string nom, string nomRomanise, string region, int premierChap, int premierEp, bool statut, string description, string image) : this(nom, nomRomanise, region, premierChap, premierEp, statut, description) { if (String.IsNullOrWhiteSpace(image)) { image = "baseimage.png"; } Image = image; } public override bool Equals(object? obj) { if (obj == null) return false; if (this.GetType() != obj.GetType()) { return false; } else { Equipage o = (Equipage)obj; return o.Nom == Nom; } } public override int GetHashCode() { return HashCode.Combine(NomRomanise, Region, PremierChap, PremierEp, Statut, Description); } public override string ToString() { return "Equipage : " + Nom +" "+EstFavori+ " " + NomRomanise + " " + Region + " " + PremierChap + " " + PremierEp + " " + Statut + " " + Description + " " + Image; } } }