using BowlingLib.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Business { /// /// Classe pour gerer le jeux /// public class Manager { #region propriétés public ReadOnlyCollection Parties { get; private set; } private readonly List parties = new(); public ReadOnlyCollection Equipes { get; private set; } private readonly List equipes = new(); public ReadOnlyCollection Joueurs { get; private set; } private readonly List joueurs = new(); public IDataManager JoueurDataManager => joueurDataManager; private readonly IDataManager joueurDataManager; public IDataManager PartieDataManager => partieDataManager; private readonly IDataManager partieDataManager; public IDataManager EquipeDataManager => equipeDataManager; private readonly IDataManager equipeDataManager; #endregion #region Constructeurs public Manager(IDataManager joueurManager) { this.joueurDataManager = joueurManager; Joueurs = new ReadOnlyCollection(joueurs); } public Manager(IDataManager partieDataManager) { this.partieDataManager = partieDataManager; Parties = new ReadOnlyCollection(parties); } public Manager(IDataManager equipeDataManager) { this.equipeDataManager = equipeDataManager; Equipes = new ReadOnlyCollection(equipes); } public Manager(IDataManager equipeDataManager, IDataManager partieDataManager, IDataManager joueurManager) { this.equipeDataManager = equipeDataManager; Equipes = new ReadOnlyCollection(equipes); this.partieDataManager = partieDataManager; Parties = new ReadOnlyCollection(parties); this.joueurDataManager = joueurManager; Joueurs = new ReadOnlyCollection(joueurs); } #endregion #region Methodes /// /// Ajoute un joueur à la liste des joueurs /// /// /// public Task AddJoueur(Joueur joueur) { if (joueurDataManager == null) { return Task.FromResult(false); } return joueurDataManager.Add(joueur); } /// /// Ajoute une partie à la liste des parties /// /// /// public Task AddPartie(Partie partie) { if (partieDataManager == null) { return Task.FromResult( false); } return partieDataManager.Add(partie); } /// /// Ajoute une équipe à la liste des équipes /// /// /// public async Task AddEquipe(Equipe equipe) { if (equipeDataManager == null) { return false; } return await equipeDataManager.Add(equipe); } /// /// Retourne la liste des joueurs /// /// public async Task DeleteJoueur(Joueur joueur) { if (joueurDataManager == null) { return false; } return await JoueurDataManager.Delete(joueur); } /// /// Supprime une partie /// /// public async Task DeletePartie(Partie partie) { if (partieDataManager == null) { return false; } return await partieDataManager.Delete(partie); } /// /// Supprime une équipe /// /// public async Task DeleteEquipe(Equipe equipe) { if (equipeDataManager == null) { return false; } return await equipeDataManager.Delete(equipe); } /// /// Retourne la liste des joueurs /// /// public async Task UpdateJoueur(Joueur joueur) { if (joueurDataManager == null) { return false; } return await JoueurDataManager.Update(joueur); } /// /// Met à jour une partie /// /// public async Task UpdatePartie(Partie partie) { if (partieDataManager == null) { return false; } return await partieDataManager.Update(partie); } /// /// Met à jour une équipe /// /// public async Task UpdateEquipe(Equipe equipe) { if (equipeDataManager == null) { return false; } return await equipeDataManager.Update(equipe); } /// /// Retourne la liste des joueurs /// /// public async Task> GetAllJoueur() { return await JoueurDataManager.GetAll(); } /// /// Retourne les dernières parties du joueur /// /// public async Task> GetAllPartie() { return await partieDataManager.GetAll(); } /// /// Retourne les Equipe en fonction d'une partie /// /// public async Task> GetAllEquipe() { return await equipeDataManager.GetAll(); } #endregion } }