using Modèle; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Persistance { public class DataContractPersistance : IPersistanceManager { // DataContractSerializer pour chaque type public DataContractSerializer SerializerReq { get; set; } = new DataContractSerializer(typeof(List)); public DataContractSerializer SerializerUsers { get; set; } = new DataContractSerializer(typeof(List)); // Chemin des fichiers string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//Persistance"); // Noms des fichiers string FileNameReq { get; set; } string FileNameReqAdd { get; set; } string FileNameReqEdit { get; set; } string FileNameUsers { get; set; } // Fichiers complets string FileReq => Path.Combine(FilePath, FileNameReq); string FileReqAdd => Path.Combine(FilePath, FileNameReqAdd); string FileReqEdit => Path.Combine(FilePath, FileNameReqEdit); string FileUsers => Path.Combine(FilePath, FileNameUsers); // Listes des requins et utilisateurs List requins = new List(); List requinsAdd = new List(); List requinEdit = new List(); List users = new List(); // Méthodes pour les requins de l'application public List LoadRequins() { if (File.Exists(FileReq)) { throw new FileNotFoundException("The persisance file Persisitance does not exist"); } using (Stream stream = File.OpenRead(FileReq)) { requins = SerializerReq.ReadObject(stream) as List; } return requins; } public void SaveRequins(List reqs) { if (!Directory.Exists(FilePath)) { Directory.CreateDirectory(FilePath); } using (Stream stream = File.Create(FileReq)) { SerializerReq.WriteObject(stream, requins); } } // Méthodes pour les requins ajoutés par les Utilisateurs public List LoadRequinsAdd() { throw new NotImplementedException(); } public void SaveRequinsAdd(List reqs) { throw new NotImplementedException(); } // Méthodes pour les requins édités par les utilisateurs public List LoadRequinsEdit() { throw new NotImplementedException(); } public void SaveRequinsEdit(List reqs) { throw new NotImplementedException(); } // Méthodes pour les utilisateurs (Utilisateur et Manager) public List LoadUsers() { throw new NotImplementedException(); } public void SaveUsers(List pers) { throw new NotImplementedException(); } } }