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
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;
|
|
}
|
|
}
|
|
} |