From fb8b0927e294f4c4a225203f5108b7d0174b4912 Mon Sep 17 00:00:00 2001 From: Yoan Date: Fri, 9 Jun 2023 22:26:10 +0200 Subject: [PATCH] =?UTF-8?q?Possiblit=C3=A9=20de=20cr=C3=A9er=20et=20de=20m?= =?UTF-8?q?odifer=20les=20parametres=20affiliation=20(Bateau),=20Capitaine?= =?UTF-8?q?,Membre=20et=20Allie=20(Equipage);=20Fruits=20(Personnage)=20+?= =?UTF-8?q?=20Tests=20unitaires?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/Model/Classes/Equipage.cs | 41 ++++++- Sources/Model/Classes/ObjetOhara.cs | 18 +-- Sources/Model/Classes/Personnage.cs | 22 +++- Sources/Model/Stub/StubEquipage.cs | 10 +- Sources/Model/Stub/StubManager.cs | 12 +- Sources/Model/Stub/StubPersonnage.cs | 4 +- Sources/Ohara/ModalEquipage.xaml | 49 +++++++++ Sources/Ohara/ModalEquipage.xaml.cs | 25 +++++ Sources/Ohara/ModalPersonnage.xaml | 40 ++++++- Sources/Ohara/ModalPersonnage.xaml.cs | 16 +++ Sources/Ohara/PageInfoBateau.xaml.cs | 3 - Sources/Ohara/PageInfoEquipage.xaml | 84 +++++++++----- Sources/Ohara/PageInfoEquipage.xaml.cs | 16 +-- Sources/Ohara/PageInfoPersonnage.xaml | 35 +----- Sources/Ohara/PageInfoPersonnage.xaml.cs | 23 ++-- Sources/TestProject1/StubEquipageTests.cs | 4 +- Sources/TestProject1/TestManager.cs | 121 +++++++++++++++++++++ Sources/TestProject1/TestObjetOhara.cs | 53 +++++++++ Sources/TestProject1/XMLSerializerTests.cs | 75 +++++++++++++ 19 files changed, 529 insertions(+), 122 deletions(-) create mode 100644 Sources/TestProject1/TestManager.cs create mode 100644 Sources/TestProject1/TestObjetOhara.cs create mode 100644 Sources/TestProject1/XMLSerializerTests.cs diff --git a/Sources/Model/Classes/Equipage.cs b/Sources/Model/Classes/Equipage.cs index 02cd050..c1104c5 100644 --- a/Sources/Model/Classes/Equipage.cs +++ b/Sources/Model/Classes/Equipage.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; @@ -81,12 +82,46 @@ namespace Model.Classes } } [DataMember(Name = "capitaine")] - public Personnage? Capitaine { get; set; } + private Personnage? capitaine; + public Personnage? Capitaine { + get=>capitaine; + set + { + capitaine = value; + OnPropertyChanged(); + } + } [DataMember(Name = "membre")] - public List Membre { get; set; } = new List(); + 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")] - public List Allie { get; set; } = new List(); + 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) { diff --git a/Sources/Model/Classes/ObjetOhara.cs b/Sources/Model/Classes/ObjetOhara.cs index f0fd9f4..7d9b692 100644 --- a/Sources/Model/Classes/ObjetOhara.cs +++ b/Sources/Model/Classes/ObjetOhara.cs @@ -20,12 +20,7 @@ namespace Model.Classes public string? Nom { get => nom; set - { - if (nom == value) - { - return; - } - + { nom = value; OnPropertyChanged(); } @@ -36,10 +31,7 @@ namespace Model.Classes public string? Image { get => image; set - { - - if (image == value) - return; + { image = value; OnPropertyChanged(); @@ -51,9 +43,7 @@ namespace Model.Classes public bool EstFavori { get=>estfavori; set - { - if (estfavori == value) - return; + { estfavori = value; } } @@ -92,7 +82,7 @@ namespace Model.Classes } public override string ToString() { - return "ObjetOhara :" + Nom + " " +EstFavori+ " " + Image; + return "ObjetOhara : " + Nom + " " +EstFavori+ " " + Image; } protected void OnPropertyChanged([CallerMemberName] string? propertyName = null) diff --git a/Sources/Model/Classes/Personnage.cs b/Sources/Model/Classes/Personnage.cs index 2bb784e..4bc099d 100644 --- a/Sources/Model/Classes/Personnage.cs +++ b/Sources/Model/Classes/Personnage.cs @@ -1,4 +1,5 @@ -using System.ComponentModel; +using System.Collections.ObjectModel; +using System.ComponentModel; using System.Runtime.CompilerServices; using System.Runtime.Serialization; @@ -120,9 +121,22 @@ namespace Model.Classes } } [DataMember(Name = "fruit", EmitDefaultValue = false)] - public List Fruit { get; set; } = new List(); - - + private ObservableCollection fruit = new ObservableCollection(); + public IReadOnlyCollection Fruit { + get=>fruit; + } + public void AjouterFruit(FruitDuDemon? f) + { + if (f == null) return; + fruit.Add(f); + } + public void RetierFruit(FruitDuDemon? f) + { + if (f == null) return; + fruit.Remove(f); + } + public void ViderFruit() => fruit.Clear(); + public Personnage(string nom, double prime, string epithete, int age, double taille, string origine, string biographie, string citation) : base(nom) diff --git a/Sources/Model/Stub/StubEquipage.cs b/Sources/Model/Stub/StubEquipage.cs index cd41237..184284e 100644 --- a/Sources/Model/Stub/StubEquipage.cs +++ b/Sources/Model/Stub/StubEquipage.cs @@ -18,7 +18,7 @@ namespace Model.Stub var clown = new Equipage("Équipage du Clown", "Bagï Kalzokudan", "East Blue", 8, 4, true, "L'équipage du Clown ...", "clown.png"); var blanche = new Equipage("Équipage de Barbe Blanche", "Shirohige Kaizokudan", "East Blue", 234, 151, true, "L'équipage de Barbe Blanche ...", "blanche.jpg"); var noire = new Equipage("Équipage de Barbe Noire", "Kurohige Kaizokudan", "East Blue", 234, 151, true, "L'équipage de Barbe Noire ...", "noire.png"); - paille.Allie.Add(clown); + paille.AjouterAllie(clown); paille = RemplirEquipage(paille, persos, new List { "Luffy" }); Equipages = new List() { @@ -26,9 +26,7 @@ namespace Model.Stub roux, clown, blanche, - - }; - + }; } public IEnumerable RecupererEquipage() { @@ -38,10 +36,10 @@ namespace Model.Stub public Equipage RemplirEquipage(Equipage equipage,List persos,List noms) { var persos2 = persos.Where(p => noms.Contains(p.Nom)); - equipage.Membre.AddRange(persos2); + foreach (Personnage p in persos2) + equipage.AjouterMembre(p); return equipage; - } } } \ No newline at end of file diff --git a/Sources/Model/Stub/StubManager.cs b/Sources/Model/Stub/StubManager.cs index 20f2ffa..361dba6 100644 --- a/Sources/Model/Stub/StubManager.cs +++ b/Sources/Model/Stub/StubManager.cs @@ -60,32 +60,32 @@ namespace Model.Stub public void SetBateau(List listeBateaux) { - throw new NotImplementedException(); + return; } public void SetBestiaire(List listeBest) { - throw new NotImplementedException(); + return; } public void SetEquipage(List listeEquip) { - throw new NotImplementedException(); + return; } public void SetFDD(List listeFDD) { - throw new NotImplementedException(); + return; } public void SetIle(List listeIle) { - throw new NotImplementedException(); + return; } public void SetPersonnage(List listePerso) { - throw new NotImplementedException(); + return; } } } diff --git a/Sources/Model/Stub/StubPersonnage.cs b/Sources/Model/Stub/StubPersonnage.cs index cec7c4a..3599b2c 100644 --- a/Sources/Model/Stub/StubPersonnage.cs +++ b/Sources/Model/Stub/StubPersonnage.cs @@ -26,8 +26,8 @@ namespace Model.Stub List fruits = new List(stubFruitDuDemon.RecupererFruit()); - luffy.Fruit.AddRange(fruits.Where(p => p.Nom == "Fruit de l'humain modèle Nika")); - robin.Fruit.AddRange(fruits.Where(p => p.Nom == "Fruit des Éclosions")); + luffy.AjouterFruit(fruits.FirstOrDefault(p => p.Nom == "Fruit de l'humain modèle Nika")); + robin.AjouterFruit(fruits.FirstOrDefault(p => p.Nom == "Fruit des Éclosions")); List persos = new List() diff --git a/Sources/Ohara/ModalEquipage.xaml b/Sources/Ohara/ModalEquipage.xaml index 531061f..4866043 100644 --- a/Sources/Ohara/ModalEquipage.xaml +++ b/Sources/Ohara/ModalEquipage.xaml @@ -49,6 +49,55 @@