using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GameAtlas.Models
{
    public class Manager
    {
        public List<Jeu> ListJeux { get; private set; }
        public List<Admin> Admins { get; private set; }
        public List<Utilisateur> Utilisateurs { get; private set; }
        public IPersistanceManager Persistance { get; set; }


        public Manager(IPersistanceManager persistance)
        {
            Utilisateurs = new List<Utilisateur>();
            ListJeux = new List<Jeu>();
            Persistance = persistance;
        }

        public Manager() {
            ListJeux = new List<Jeu>();
            Admins = new List<Admin>();
            Utilisateurs = new List<Utilisateur>();
        }

        public void AddJeux(Jeu jeux)
        {
            ListJeux.Add(jeux);
        }

        public void AddAdmin(Admin admin)
        {
            Admins.Add(admin);
        }

        public void AddUtilisateur(Utilisateur utilisateur)
        {
            Utilisateurs.Add(utilisateur);
        }

        public void ChargerDonnees()
        {
            var donnees = Persistance.ChargeDonnees();

            foreach (var user in donnees.Item2)
            {
                AddUtilisateur(user);
            }

            foreach (var jeu in donnees.Item1)
            {
                AddJeux(jeu);
            }
           
        }

        public void SauvegardeDonnees()
        {
            Persistance.SauvegardeDonnees(ListJeux, Utilisateurs);
        }

    }
}
