/// <summary>
 /// Méthode qui permet à l'administrateur de supprimer un jeu de la liste de jeu
 /// </summary>
 /// <param name="jeuASupprimer">Jeu qui va être supprimé</param>
 /// <param name="utilisateur">Utilisateur qui veut supprimer le jeu, normalement admin</param>
 public void SupprimerJeu(JeuVidéo jeuASupprimer, UtilisateurConnecté utilisateur)
 {
     if (utilisateur is Administrateur)
     {
         ListeJeux.Remove(jeuASupprimer);
         ListeJeuxAux.Remove(jeuASupprimer);
     }
     SauvegardeDonnées();
 }
 /// <summary>
 ///  Méthode qui permet à l'administrateur d'ajouter un jeu de la liste de jeu
 /// </summary>
 /// <param name="jeuAAjouter">Jeu qui va être ajouté</param>
 /// <param name="utilisateur1">Utilisateur qui veut ajouter le jeu, normalement admin</param>
 public void AjouterJeu(JeuVidéo jeuAAjouter, UtilisateurConnecté utilisateur)
 {
     if (utilisateur is Administrateur)
     {
         ListeJeux.Add(jeuAAjouter);
         ListeJeuxAux.Add(jeuAAjouter);
     }
     SauvegardeDonnées();
 }
Exemplo n.º 3
0
        /// <summary>
        /// Méthode qui va charger les données contenues dans le fichier de sauvegarde
        /// </summary>
        /// <returns>Elle renvoie la liste de jeux clonés et d'utilisateurs chargés dans la méthode </returns>
        public (IEnumerable <JeuVidéo> jeuVidéos, IEnumerable <UtilisateurConnecté> utilisateursConnectés) ChargeDonnées()
        {
            if (!File.Exists(DataFile))                                           // vérification que le fichier existe
            {
                throw new FileNotFoundException("Le fichier n'a pas été trouvé"); // lance un exception si pas trouvé
            }

            DataToPersist dataToPersist;                                   // initialisation des collections DTO

            using (Stream s = File.OpenRead(DataFile))                     // instanciation du flux de donnée s en lecture -> on utilise using pour pas oublier de fermer le fichier car appel implicite et automatique de dispose() pour nettoyer données non-managées
            {
                dataToPersist = Serializer.ReadObject(s) as DataToPersist; // déserialisation des données qui sont mises dans les collections DTO
            }

            ListeJeux = dataToPersist.ListeJeux.ToPOCOs().ToList();                                              // transformation de la ListeJeux DTO en ListeJeux POCO (objet métier)

            ListeUtilisateurConnecté = dataToPersist.ListeUtilisateurs.ToPOCOS(ListeJeux).ToList();              // transformation de la ListeUtilisateur DTO en ListeUtilisateur POCO (objet métier)

            ListeUtilisateurConnecté.AddRange(dataToPersist.ListeAdministrateurs.ToPOCOS(ListeJeux).ToList());   // transformation de la ListeAdministrateur DTO en ListeAdministrateurs POCO (objet métier)

            return(ListeJeux.Select(m => m.Clone()).Cast <JeuVidéo>().AsEnumerable(), ListeUtilisateurConnecté); // Renvoie des deux liste dont Listjeux a ses jeux clonés pour eviter problème référence dans le modèle
        }
Exemplo n.º 4
0
        /// <summary>
        /// Méthode permettant de charger les données de l'application
        /// </summary>
        public void ChargeDonnées()
        {
            var données = DataManager.ChargeDonnées();

            foreach (var jeu in données.jeuVidéos)
            {
                ListeJeux.Add(jeu);                           //Ajoute les jeux chargés à la liste de jeux
            }
            ListeJeux.Sort();                                 //Trie la liste jeu par ordre alphabétique
            ListeJeuxArray = new JeuVidéo[ListeJeux.Count()]; //Instancie le tableau de tous les jeux vidéos(ListeJeuxArray) pour la copie
            for (int i = 0; i < ListeJeux.Count(); i++)
            {
                ListeJeuxArray[i] = ListeJeux[i].Clone() as JeuVidéo; // sélectionne tous les jeux de ListeJeux, les clonent et les mets dans le tableau ListeJeuxArray
            }

            ListeJeuxAux = new ObservableCollection <JeuVidéo>(ListeJeuxArray); //Instancie la ListeJeuxAux qui sert pour les tris à partir du tableau ListeJeuxArray


            foreach (var user in données.utilisateursConnectés)
            {
                ListeUtilisateur.Add(user); //Ajoute les utilisateurs chargés à la liste d'utilisateur
            }
        }
 /// <summary>
 /// Méthode qui recherche un jeu grâce au nom rentré dans la barre de recherche de l'application avec le nom complet ou le début de lettre
 /// </summary>
 /// <param name="nomJeu">Nom du jeu voulu</param>
 /// <returns>Le jeu recherché ou null si rien n'a été trouvé</returns>
 public List <JeuVidéo> RechercherJeuTextBox(string nomJeu)
 {
     return(ListeJeux.Where(jeu => jeu.Nom.ToLower().StartsWith(nomJeu.ToLower())).ToList());
 }
 /// <summary>
 /// Méthode qui recherche un jeu et le renvoie seulement si le nom complet est le même
 /// </summary>
 /// <param name="nomJeu">Nom du jeu voulu</param>
 /// <returns>Le jeu recherché ou null si rien n'a été trouvé</returns>
 public JeuVidéo RechercherJeu(string nomJeu)
 {
     return(ListeJeux.SingleOrDefault(jeu => jeu.Nom.ToLower().Equals(nomJeu.ToLower())));
 }