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.
183 lines
5.1 KiB
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;
|
|
}
|
|
}
|
|
}
|