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.
138 lines
3.5 KiB
138 lines
3.5 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Models
|
|
{
|
|
public class Manager : INotifyPropertyChanged
|
|
{
|
|
|
|
public List<Admin> Admins { get; private set; }
|
|
public List<Utilisateur> Utilisateurs { get; private set; }
|
|
|
|
private ObservableCollection<Jeu> topRatedGames;
|
|
public ObservableCollection<Jeu> TopRatedGames
|
|
{
|
|
get
|
|
{
|
|
return topRatedGames = new ObservableCollection<Jeu>(ListJeux.OrderByDescending(jeu => jeu.Note).Take(4));
|
|
}
|
|
set
|
|
{
|
|
topRatedGames = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
private ObservableCollection<Jeu> listJeuxAffiches;
|
|
public ObservableCollection<Jeu> ListJeuxAffiches
|
|
{
|
|
get
|
|
{
|
|
var cinqPremiersJeux = ListJeux.Take(5);
|
|
return listJeuxAffiches = new ObservableCollection<Jeu>(cinqPremiersJeux);
|
|
}
|
|
set
|
|
{
|
|
listJeuxAffiches = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
private ObservableCollection<Jeu> listJeux;
|
|
public ObservableCollection<Jeu> ListJeux
|
|
{
|
|
get
|
|
{
|
|
return listJeux;
|
|
}
|
|
set
|
|
{
|
|
listJeux = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public IPersistanceManager Persistance { get; set; }
|
|
|
|
private Utilisateur connectedUser;
|
|
public Utilisateur ConnectedUser
|
|
{
|
|
get => connectedUser;
|
|
set
|
|
{
|
|
connectedUser = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
public void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
|
|
public Manager(IPersistanceManager persistance)
|
|
{
|
|
Utilisateurs = new List<Utilisateur>();
|
|
Admins = new List<Admin>();
|
|
ListJeux = new ObservableCollection<Jeu>();
|
|
Persistance = persistance;
|
|
ConnectedUser = null;
|
|
}
|
|
|
|
public Manager() {
|
|
ListJeux = new ObservableCollection<Jeu>();
|
|
Admins = new List<Admin>();
|
|
Utilisateurs = new List<Utilisateur>();
|
|
ConnectedUser = null;
|
|
}
|
|
|
|
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.Item3)
|
|
{
|
|
AddUtilisateur(user);
|
|
}
|
|
|
|
foreach (var admin in donnees.Item2)
|
|
{
|
|
AddAdmin(admin);
|
|
}
|
|
|
|
foreach (var jeu in donnees.Item1)
|
|
{
|
|
AddJeux(jeu);
|
|
}
|
|
|
|
}
|
|
|
|
public void SauvegardeDonnees()
|
|
{
|
|
Persistance.SauvegardeDonnees(ListJeux, Admins, Utilisateurs);
|
|
}
|
|
|
|
}
|
|
}
|