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.
GameAtlas/Sources/GameAtlas/Models/Manager.cs

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