|
|
|
|
|
using Model.Classes;
|
|
|
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.Managers
|
|
|
|
|
|
{
|
|
|
public class Manager
|
|
|
{
|
|
|
public IDataManager DataManager { get; set; }
|
|
|
public ObservableCollection<Bateau> Bateaux { get; set; }
|
|
|
public ObservableCollection<Personnage> Personnages { get; set; }
|
|
|
public ObservableCollection<FruitDuDemon> Fruits { get; set; }
|
|
|
public ObservableCollection<Ile> Iles { get; set; }
|
|
|
public ObservableCollection<Bestiaire> Bestiaire { get; set; }
|
|
|
public ObservableCollection<Equipage> Equipages { get; set; }
|
|
|
|
|
|
public ObjetOhara? SelectedItem { get; set; } = null;
|
|
|
|
|
|
public Manager(IDataManager dataManager) {
|
|
|
DataManager = dataManager;
|
|
|
Bateaux = new ObservableCollection<Bateau>(DataManager.GetBateaux());
|
|
|
Personnages = new ObservableCollection<Personnage>(DataManager.GetPersonnages());
|
|
|
Fruits = new ObservableCollection<FruitDuDemon>(DataManager.GetFruits());
|
|
|
Iles = new ObservableCollection<Ile>(DataManager.GetIles());
|
|
|
Bestiaire = new ObservableCollection<Bestiaire>(DataManager.GetBestiaires());
|
|
|
Equipages = new ObservableCollection<Equipage>(DataManager.GetEquipages());
|
|
|
}
|
|
|
|
|
|
public List<Personnage> GetPersonnages()
|
|
|
{
|
|
|
return DataManager.GetPersonnages().ToList();
|
|
|
}
|
|
|
public List<FruitDuDemon> GetFruits()
|
|
|
{
|
|
|
return DataManager.GetFruits().ToList();
|
|
|
}
|
|
|
public List<Equipage> GetEquipages()
|
|
|
{
|
|
|
return DataManager.GetEquipages().ToList();
|
|
|
}
|
|
|
public List<Bateau> GetBateaux()
|
|
|
{
|
|
|
return DataManager.GetBateaux().ToList();
|
|
|
}
|
|
|
public List<Bestiaire> GetBestiaires()
|
|
|
{
|
|
|
return DataManager.GetBestiaires().ToList();
|
|
|
}
|
|
|
public List<Ile> GetIles()
|
|
|
{
|
|
|
return DataManager.GetIles().ToList();
|
|
|
}
|
|
|
|
|
|
public List<FruitDuDemon> FiltrerFDD(string type)
|
|
|
{
|
|
|
List<FruitDuDemon> fdd = new List<FruitDuDemon>();
|
|
|
fdd=Fruits.Where(p=>p.Type==type).ToList();
|
|
|
return fdd;
|
|
|
}
|
|
|
|
|
|
public List<Bateau> FiltrerBateau(string nom)
|
|
|
{
|
|
|
List<Bateau> bateau = new List<Bateau>();
|
|
|
bateau = Bateaux.Where(p => p.Affiliation?.Nom == nom).ToList();
|
|
|
return bateau;
|
|
|
}
|
|
|
|
|
|
public List<Ile> FiltrerIle(string region)
|
|
|
{
|
|
|
List<Ile> ile = new List<Ile>();
|
|
|
ile = Iles.Where(p => p.Region == region).ToList();
|
|
|
return ile;
|
|
|
}
|
|
|
|
|
|
public List<ObjetOhara> FiltrerFavs(string type)
|
|
|
{
|
|
|
List<ObjetOhara> favs = GetFavoris();
|
|
|
return favs;
|
|
|
}
|
|
|
|
|
|
public List<ObjetOhara> RechercheObjetOhara(string text, List<ObjetOhara> 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<ObjetOhara> GetFavoris()
|
|
|
{
|
|
|
List<ObjetOhara> listeFavoris = new List<ObjetOhara>();
|
|
|
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 ModifierFavFDD(FruitDuDemon fruit,bool value)
|
|
|
{
|
|
|
foreach (FruitDuDemon b in Fruits)
|
|
|
{
|
|
|
if (b.Equals(fruit))
|
|
|
{
|
|
|
b.EstFavori = value;
|
|
|
DataManager.SetFDD(Fruits.ToList());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void ModifierFavEquip(Equipage equip, bool value)
|
|
|
{
|
|
|
foreach (Equipage b in Equipages)
|
|
|
{
|
|
|
if (b.Equals(equip))
|
|
|
{
|
|
|
b.EstFavori = value;
|
|
|
DataManager.SetEquipage(Equipages.ToList());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
public void ModifierFavBest(Bestiaire best, bool value)
|
|
|
{
|
|
|
foreach (Bestiaire b in Bestiaire)
|
|
|
{
|
|
|
if (b.Equals(best))
|
|
|
{
|
|
|
b.EstFavori = value;
|
|
|
DataManager.SetBestiaire(Bestiaire.ToList());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
public void ModifierFavPerso(Personnage perso, bool value)
|
|
|
{
|
|
|
foreach (Personnage b in Personnages)
|
|
|
{
|
|
|
if (b.Equals(perso))
|
|
|
{
|
|
|
b.EstFavori = value;
|
|
|
DataManager.SetPersonnage(Personnages.ToList());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
public void ModifierFavIle(Ile ile, bool value)
|
|
|
{
|
|
|
foreach (Ile b in Iles)
|
|
|
{
|
|
|
if (b.Equals(ile))
|
|
|
{
|
|
|
b.EstFavori = value;
|
|
|
DataManager.SetIle(Iles.ToList());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
public void ModifierFavBateau(Bateau bateau, bool value)
|
|
|
{
|
|
|
foreach (Bateau b in Bateaux)
|
|
|
{
|
|
|
if (b.Equals(bateau))
|
|
|
{
|
|
|
b.EstFavori = value;
|
|
|
DataManager.SetBateau(Bateaux.ToList());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
public void AjouterFDD(FruitDuDemon fruit)
|
|
|
{
|
|
|
Fruits.Add(fruit);
|
|
|
}
|
|
|
public void AjouterEquip(Equipage equip)
|
|
|
{
|
|
|
Equipages.Add(equip);
|
|
|
}
|
|
|
public void AjouterBest(Bestiaire best)
|
|
|
{
|
|
|
Bestiaire.Add(best);
|
|
|
}
|
|
|
public void AjouterPerso(Personnage perso)
|
|
|
{
|
|
|
Personnages.Add(perso);
|
|
|
}
|
|
|
public void AjouterIle(Ile ile)
|
|
|
{
|
|
|
Iles.Add(ile);
|
|
|
}
|
|
|
public void AjouterBateau(Bateau bateau)
|
|
|
{
|
|
|
Bateaux.Add(bateau);
|
|
|
}
|
|
|
public void SupprimerFDD(FruitDuDemon fruit)
|
|
|
{
|
|
|
Fruits.Remove(fruit);
|
|
|
}
|
|
|
public void SupprimerEquip(Equipage equip)
|
|
|
{
|
|
|
Equipages.Remove(equip);
|
|
|
}
|
|
|
public void SupprimerBest(Bestiaire best)
|
|
|
{
|
|
|
Bestiaire.Remove(best);
|
|
|
}
|
|
|
public void SupprimerPerso(Personnage perso)
|
|
|
{
|
|
|
Personnages.Remove(perso);
|
|
|
}
|
|
|
public void SupprimerIle(Ile ile)
|
|
|
{
|
|
|
Iles.Remove(ile);
|
|
|
}
|
|
|
public void SupprimerBateau(Bateau bateau)
|
|
|
{
|
|
|
Bateaux.Remove(bateau);
|
|
|
}
|
|
|
|
|
|
public void ModifierIle(Ile ile, string ancienNom)
|
|
|
{
|
|
|
Ile? ancienneIle = Iles.FirstOrDefault(p => p.Nom == ancienNom);
|
|
|
if (ancienneIle == null) return;
|
|
|
Iles.Remove(ancienneIle);
|
|
|
Iles.Add(ile);
|
|
|
}
|
|
|
public void ModifierBest(Bestiaire best, string ancienNom)
|
|
|
{
|
|
|
Bestiaire? ancienBest = Bestiaire.FirstOrDefault(p => p.Nom == ancienNom);
|
|
|
if (ancienBest == null) return;
|
|
|
Bestiaire.Remove(ancienBest);
|
|
|
Bestiaire.Add(best);
|
|
|
}
|
|
|
public void ModifierEquipage(Equipage equip, string ancienNom)
|
|
|
{
|
|
|
Equipage? ancienEquip = Equipages.FirstOrDefault(p => p.Nom == ancienNom);
|
|
|
if (ancienEquip == null) return;
|
|
|
Equipages.Remove(ancienEquip);
|
|
|
Equipages.Add(equip);
|
|
|
}
|
|
|
|
|
|
public void ModifierBateau(Bateau bateau, string ancienNom)
|
|
|
{
|
|
|
Bateau? ancienBateau = Bateaux.FirstOrDefault(p => p.Nom == ancienNom);
|
|
|
if (ancienBateau == null) return;
|
|
|
Bateaux.Remove(ancienBateau);
|
|
|
Bateaux.Add(bateau);
|
|
|
}
|
|
|
public void ModifierFDD(FruitDuDemon fruit, string ancienNom)
|
|
|
{
|
|
|
FruitDuDemon? ancienFDD = Fruits.FirstOrDefault(p => p.Nom == ancienNom);
|
|
|
if (ancienFDD == null) return;
|
|
|
Fruits.Remove(ancienFDD);
|
|
|
Fruits.Add(fruit);
|
|
|
}
|
|
|
public void ModifierPerso(Personnage perso, string ancienNom)
|
|
|
{
|
|
|
Personnage? ancienPerso = Personnages.FirstOrDefault(p => p.Nom == ancienNom);
|
|
|
if (ancienPerso == null) return;
|
|
|
Personnages.Remove(ancienPerso);
|
|
|
Personnages.Add(perso);
|
|
|
}
|
|
|
}
|
|
|
}
|