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.
Ohara_MAUI/Sources/Model/Classes/Equipage.cs

183 lines
5.1 KiB

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<Personnage> membre = new ObservableCollection<Personnage>();
public IReadOnlyCollection<Personnage> 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<Equipage> allie = new ObservableCollection<Equipage>();
public IReadOnlyCollection<Equipage> 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;
}
}
}