using Microsoft.VisualBasic; using Model.Serializer; using Model.Stub; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Resources; using System.Text; using System.Threading.Tasks; namespace Model { public class Manager { public IDataManager DataManager { get; 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(IDataManager dataManager) { DataManager = dataManager; 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() { return DataManager.GetPersonnages().ToList(); } public List GetFruits() { return DataManager.GetFruits().ToList(); } public List GetEquipages() { return DataManager.GetEquipages().ToList(); } public List GetBateaux() { return DataManager.GetBateaux().ToList(); } public List GetBestiaires() { return DataManager.GetBestiaires().ToList(); } public List GetIles() { return DataManager.GetIles().ToList(); } public List FiltrerFDD(string type) { List fdd = GetFruits(); foreach(FruitDuDemon f in fdd.ToList()) { if(f.Type != type) { fdd.Remove(f); } } return fdd; } public List RechercheFDD(string text,List listeFDD) { if (text == "") { return listeFDD; } foreach(FruitDuDemon f in listeFDD.ToList()) { bool correspondance = false; int textPos = 0; for (int i = 0; i < (f.Nom.Length); i++) { if (string.Equals(text[textPos].ToString(), f.Nom[i].ToString(), StringComparison.OrdinalIgnoreCase)) { textPos++; } if(textPos == text.Length) { correspondance = true; break; } } if (!correspondance) { listeFDD.Remove(f); } } return listeFDD; } public List RechercheObjetOhara(string text, List liste) { if (text == "") { return liste; } foreach (ObjetOhara f in liste.ToList()) { bool correspondance = false; int textPos = 0; for (int i = 0; i < (f.Nom.Length); i++) { if (string.Equals(text[textPos].ToString(), f.Nom[i].ToString(), StringComparison.OrdinalIgnoreCase)) { textPos++; } if (textPos == text.Length) { correspondance = true; break; } } if (!correspondance) { liste.Remove(f); } } return liste; } public List GetFavoris() { List listeFavoris = new List(); listeFavoris.AddRange(Bateaux); listeFavoris.AddRange(Equipages); listeFavoris.AddRange(Bestiaire); listeFavoris.AddRange(Fruits); listeFavoris.AddRange(Iles); listeFavoris.AddRange(Personnages); foreach(ObjetOhara obj in listeFavoris.ToList()) { if (obj.EstFavori == false) { listeFavoris.Remove(obj); } } return listeFavoris; } public void ModifierFavoris(ObjetOhara obj,bool value) { Type t = obj.GetType(); if (t.Equals(typeof(Bateau))) foreach(Bateau b in Bateaux) { if (b.Equals(obj)) { b.EstFavori = value; DataManager.SetBateau(Bateaux.ToList()); } } else if (t.Equals(typeof(Equipage))) foreach (Equipage b in Equipages) { if (b.Equals(obj)) { b.EstFavori = value; DataManager.SetEquipage(Equipages.ToList()); } } else if (t.Equals(typeof(Personnage))) foreach (Personnage b in Personnages) { if (b.Equals(obj)) { b.EstFavori = value; DataManager.SetPersonnage(Personnages.ToList()); } } else if (t.Equals(typeof(Ile))) foreach (Ile b in Iles) { if (b.Equals(obj)) { b.EstFavori = value; DataManager.SetIle(Iles.ToList()); } } else if (t.Equals(typeof(FruitDuDemon))) foreach (FruitDuDemon b in Fruits) { if (b.Equals(obj)) { b.EstFavori = true; DataManager.SetFDD(Fruits.ToList()); } } else if (t.Equals(typeof(Bestiaire))) foreach (Bestiaire b in Bestiaire) { if (b.Equals(obj)) { b.EstFavori = value; DataManager.SetBestiaire(Bestiaire.ToList()); } } } } }