diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs index 8dfaa81..3c8ce05 100644 --- a/Sources/Model/Manager.cs +++ b/Sources/Model/Manager.cs @@ -14,11 +14,24 @@ namespace Model { public IDataManager DataManager { get; set; } - public ObservableCollection Bateaux { get; private set; } + public ObservableCollection Bateaux { get; set; } + public ObservableCollection Personnages { get; set; } + public ObservableCollection Fruits { get; set; } + public ObservableCollection Iles { get; set; } + public ObservableCollection Bestiaire { get; set; } + public ObservableCollection Equipages { get; set; } + + public ObjetOhara? SelectedItem { get; set; } = null; public Manager() { - Bateaux = new ObservableCollection(); DataManager = new StubManager(); + Bateaux = new ObservableCollection(DataManager.GetBateaux()); + Personnages = new ObservableCollection(DataManager.GetPersonnages()); + Fruits = new ObservableCollection(DataManager.GetFruits()); + Iles = new ObservableCollection(DataManager.GetIles()); + Bestiaire = new ObservableCollection(DataManager.GetBestiaires()); + Equipages = new ObservableCollection(DataManager.GetEquipages()); + } public List GetPersonnages() @@ -120,15 +133,15 @@ namespace Model public List GetFavoris() { List listeFavoris = new List(); - listeFavoris.AddRange(GetBateaux()); - listeFavoris.AddRange(GetIles()); + listeFavoris.AddRange(Bateaux); + listeFavoris.AddRange(Equipages); listeFavoris.AddRange(GetEquipages()); listeFavoris.AddRange(GetFruits()); listeFavoris.AddRange(GetBestiaires()); listeFavoris.AddRange(GetPersonnages()); foreach(ObjetOhara obj in listeFavoris.ToList()) { - if (obj.EstFavori == true) + if (obj.EstFavori == false) { listeFavoris.Remove(obj); } @@ -136,9 +149,64 @@ namespace Model return listeFavoris; } - public void AddBateauFavoris(Bateau bateau) + public void AddFavoris(ObjetOhara obj) { - bateau.EstFavori = true; + Type t = obj.GetType(); + + if (t.Equals(typeof(Bateau))) + foreach(Bateau b in Bateaux) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + else if (t.Equals(typeof(Equipage))) + foreach (Equipage b in Equipages) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(Personnage))) + foreach (Personnage b in Personnages) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(Ile))) + foreach (Ile b in Iles) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(FruitDuDemon))) + foreach (FruitDuDemon b in Fruits) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(Bestiaire))) + foreach (Bestiaire b in Bestiaire) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + } + } } diff --git a/Sources/Model/ObjetOhara.cs b/Sources/Model/ObjetOhara.cs index 62b2dbf..e2f41d6 100644 --- a/Sources/Model/ObjetOhara.cs +++ b/Sources/Model/ObjetOhara.cs @@ -23,6 +23,17 @@ namespace Model Image = image; EstFavori = estFavori; } + + public override bool Equals(object? obj) + { + if (obj == null) return false; + else + { + ObjetOhara o = (ObjetOhara)obj; + return o.Nom == Nom; + } + + } } } diff --git a/Sources/Model/Stub/StubBateau.cs b/Sources/Model/Stub/StubBateau.cs index a5c1e4d..350b5cb 100644 --- a/Sources/Model/Stub/StubBateau.cs +++ b/Sources/Model/Stub/StubBateau.cs @@ -16,6 +16,9 @@ namespace Model.Stub new Bateau("Sunny", "Sauzando Sani-go", 435, 321, "Le Thousand Sunny est...", "Ce bateau a pour particularités ...", "sunny.png"), new Bateau("Vogue Merry", "Goingu Merri-go", 41, 17, "Le Vogue Merry est...", "Ce bateau a pour particularités ...", "vogue_merry.png"), new Bateau("Moby Dick", "Mobi Dikku-go", 234, 151, "Le Moby Dick est...", "Ce bateau a pour particularités ...", "moby_dick.png"), + new Bateau("Test", "Mobi Dikku-go", 234, 151, "Le Moby Dick est...", "Ce bateau a pour particularités ...", "moby_dick.png"), + new Bateau("Test2", "Mobi Dikku-go", 234, 151, "Le Moby Dick est...", "Ce bateau a pour particularités ...", "moby_dick.png"), + }; return bateau; } diff --git a/Sources/Ohara/PageBateau.xaml b/Sources/Ohara/PageBateau.xaml index f50c5db..a8403dc 100644 --- a/Sources/Ohara/PageBateau.xaml +++ b/Sources/Ohara/PageBateau.xaml @@ -21,14 +21,14 @@