You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
3.1 KiB

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<Requin> Requins { get; private set; }
private List<Requin> requins = new List<Requin>();
public Requin SelectedRequin { get; set; }
/// <summary>
/// DéPENDANCE
/// </summary>
public IPersistanceManager Pers { get; private set; }
/// <summary>
/// constructeur avec INJECTION DE LA DéPENDANCE
/// </summary>
public Manager(IPersistanceManager pers)
{
Requins = new ReadOnlyCollection<Requin>(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<Requin> rechercherRequins(ReadOnlyCollection<Requin> lRech, Nullable<Zone> zone, string motif)
{
List<Requin> nvReq = new List<Requin>();
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;
}
}
}