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.
112 lines
3.7 KiB
112 lines
3.7 KiB
using CanYouBuildIt.DataContractPersistance;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Runtime.Serialization;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace CanYouBuildIt.Model
|
|
{
|
|
public class Manager
|
|
{
|
|
public List<Utilisateur> listUtil { get; private set; }
|
|
public List<Composant> listComp { get; private set; }
|
|
public List<Build> listBuild { get; private set; }
|
|
public IPersistanceManager Persi { get; set; }
|
|
|
|
public Manager()
|
|
{
|
|
listUtil = new List<Utilisateur>();
|
|
listComp = new List<Composant>();
|
|
listBuild = new List<Build>();
|
|
}
|
|
public Manager(IPersistanceManager pers)
|
|
{
|
|
listUtil = new List<Utilisateur>();
|
|
listComp = new List<Composant>();
|
|
listBuild = new List<Build>();
|
|
Persi = pers;
|
|
}
|
|
|
|
//Utilise le chargeDonnee donnée de la persistance (de stub ou de DataContractPersi)
|
|
public void chargeDonne()
|
|
{
|
|
DataToPersist donnee = Persi.chargeDonnee();
|
|
listUtil.AddRange(donnee.lu);
|
|
listComp.AddRange(donnee.lc);
|
|
listBuild.AddRange(donnee.lb);
|
|
}
|
|
|
|
//Utilise le sauvegardeDonnee donnée de la persistance (de DataContractPersi)
|
|
public void sauvegardeDonnee()
|
|
{
|
|
DataToPersist data = new DataToPersist();
|
|
data.lu.AddRange(listUtil);
|
|
data.lc.AddRange(listComp);
|
|
data.lb.AddRange(listBuild);
|
|
Persi.sauvegardeDonnee(data);
|
|
}
|
|
|
|
//Ajoute l'utilisateur passé en paramètre a la liste d'utilisateur du manager
|
|
public int ajouterUtilisateur(Utilisateur utilisateur)
|
|
{
|
|
listUtil.Add(utilisateur);
|
|
return listUtil.Count-1 ;
|
|
}
|
|
|
|
//Ajoute le composant passé en paramètre a la liste de composant du manager
|
|
public void ajouterComposant(Composant composant)
|
|
{
|
|
listComp.Add(composant);
|
|
}
|
|
|
|
//Ajoute le build passé en paramètre a la liste de build du manager
|
|
public void ajouterBuild(Build build)
|
|
{
|
|
listBuild.Add(build);
|
|
}
|
|
|
|
//Permet de savoir si un username existe ou si il est déjà attribué (et return l'indice dans la liste du manager)
|
|
public int rechercheUsername(string usern)
|
|
{
|
|
for (int i = 0; i < listUtil.Count; i++ )
|
|
{
|
|
if (listUtil[i].username.Equals(usern,StringComparison.OrdinalIgnoreCase)){
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
//Permet de chercher un mot de passe pour savoir si il correspond au bonne utilisateur (et return l'indice dans la liste du manager)
|
|
public int recherchePwd(string pwd)
|
|
{
|
|
for (int i = 0; i < listUtil.Count; i++)
|
|
{
|
|
if (listUtil[i].password.Equals(pwd,StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
//Recherche si un pc fais parti des builds mis en favoris par un utilisateur
|
|
public int rechercheFav(int usern,int fav)
|
|
{
|
|
if (listUtil[usern].listFav != null)
|
|
for (int i = 0; i < listUtil[usern].listFav.Count();++i)
|
|
{
|
|
if (listUtil[usern].listFav[i] == fav)
|
|
{
|
|
return (i);
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
}
|
|
}
|