using Modèle; using Persistance; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Business { public class Manager { public ReadOnlyCollection Requins { get; private set; } private List requins = new List(); public Requin SelectedRequin { get; set; } /// /// DéPENDANCE /// public IPersistanceManager Pers { get; private set; } /// /// constructeur avec INJECTION DE LA DéPENDANCE /// public Manager(IPersistanceManager pers) { Requins = new ReadOnlyCollection(requins); Pers = pers; } public void LoadRequins() { requins.Clear(); requins.AddRange(Pers.LoadRequins()); SelectedRequin = null; } public void SaveRequins() { Pers.SaveRequins(requins); } public bool AjouterRequin(Requin req) { if (requins.Contains(req)){ return false; } requins.Add(req); return true; } public bool SupprimerRequin(Requin req) { if (!requins.Contains(req)) { return false; } requins.Remove(req); return true; } public Requin GetRequin(Requin req) { return requins.SingleOrDefault(r => r.Equals(req)); } public bool ModifieRequin(Requin oldR, Requin newR) { if (!oldR.Equals(newR)) { return false; } requins.Remove(oldR); requins.Add(newR); return true; } public List rechercherRequins(ReadOnlyCollection lRech, Nullable zone, string motif) { List nvReq = new List(); int test = 0; if (!string.IsNullOrWhiteSpace(motif)) { foreach (Requin req in lRech) { if (zone == null) { if (req.Nom.Contains(motif) || req.NomSci.Contains(motif)) { nvReq.Add(req); } } else { foreach (Zone z in req.Repartition) { if ((req.Nom.Contains(motif) || req.NomSci.Contains(motif)) && zone == z) { test++; } } if (test > 0) { nvReq.Add(req); } } test = 0; } } return nvReq; } } }