A finir la persi

pull/9/head
Clement LESME 2 years ago
parent 2256b7606c
commit f444a8b691

@ -5,7 +5,7 @@ namespace CanYouBuildIt;
public partial class App : Application public partial class App : Application
{ {
public Manager manager { get; private set; } = new Manager(new DataContractPersistance.DataContractPers()); public Manager manager { get; private set; } = new Manager(new Stub());
public App() public App()
{ {
manager.chargeDonne(); manager.chargeDonne();

@ -18,22 +18,22 @@ namespace CanYouBuildIt.DataContractPersistance
public DataContractPers() { } public DataContractPers() { }
public List<Utilisateur> chargeDonnee() public (List<Utilisateur>,List<Composant>) chargeDonnee()
{ { //replacer liste par datatopersiste
var serializer = new DataContractSerializer(typeof(List<Utilisateur>)); var serializer = new DataContractSerializer(typeof(DataToPersist));
List<Utilisateur> lu = new List<Utilisateur>(); DataToPersist data = new DataToPersist();
using (Stream stream = File.OpenRead(Path.Combine(FilePath, FileName))) using (Stream stream = File.OpenRead(Path.Combine(FilePath, FileName)))
{ {
lu = serializer.ReadObject(stream) as List<Utilisateur>; data = serializer.ReadObject(stream) as DataToPersist;
} }
return lu; return (data.lu,data.lc); // return entre parentèses data.type1, data.type2
} }
public bool sauvegardeDonnee(List<Utilisateur> lu) public void sauvegardeDonnee(List<Utilisateur> lu, List<Composant> lc)
{ {
var serializer = new DataContractSerializer (typeof(List<Utilisateur>)); var serializer = new DataContractSerializer (typeof(DataToPersist));
Debug.WriteLine(Directory.GetCurrentDirectory()); Debug.WriteLine(Directory.GetCurrentDirectory());
if (!Directory.Exists(FilePath)) if (!Directory.Exists(FilePath))
@ -42,16 +42,17 @@ namespace CanYouBuildIt.DataContractPersistance
Directory.CreateDirectory(FilePath); Directory.CreateDirectory(FilePath);
File.Create(Path.Combine(FilePath, FileName)); File.Create(Path.Combine(FilePath, FileName));
} }
DataToPersist data = new DataToPersist();
data.lu = lu;
data.lc = lc;
var settings = new XmlWriterSettings() { Indent = true }; var settings = new XmlWriterSettings() { Indent = true };
using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName))) using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName)))
{ {
using (XmlWriter writer = XmlWriter.Create(tw, settings)) using (XmlWriter writer = XmlWriter.Create(tw, settings))
{ {
serializer.WriteObject(writer, lu); serializer.WriteObject(writer, data);
} }
} }
return true;
} }
} }
} }

@ -1,4 +1,5 @@
using System; using CanYouBuildIt.Model;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -6,7 +7,9 @@ using System.Threading.Tasks;
namespace CanYouBuildIt.DataContractPersistance namespace CanYouBuildIt.DataContractPersistance
{ {
internal class DataToPersist public class DataToPersist
{ {
public List<Utilisateur> lu = new List<Utilisateur>();
public List<Composant> lc = new List<Composant>();
} }
} }

@ -12,7 +12,7 @@ namespace CanYouBuildIt.Model
Processeur, Processeur,
Ventirad, Ventirad,
CarteMere, CarteMere,
MemoireVive, RAM,
CarteGraphique, CarteGraphique,
Alimentation, Alimentation,
Ventilateur, Ventilateur,

@ -8,8 +8,8 @@ namespace CanYouBuildIt.Model
{ {
public interface IPersistanceManager public interface IPersistanceManager
{ {
public List<Utilisateur> chargeDonnee(); public (List<Utilisateur>,List<Composant>) chargeDonnee();
public bool sauvegardeDonnee(List<Utilisateur> lu); public void sauvegardeDonnee(List<Utilisateur> lu,List<Composant> lc);
} }
} }

@ -11,6 +11,7 @@ namespace CanYouBuildIt.Model
public class Manager public class Manager
{ {
public List<Utilisateur> listUtil { get; private set; } public List<Utilisateur> listUtil { get; private set; }
public List<Composant> listComp { get; private set; }
public IPersistanceManager Persi { get; set; } public IPersistanceManager Persi { get; set; }
public Manager() public Manager()
@ -26,13 +27,14 @@ namespace CanYouBuildIt.Model
public void chargeDonne() public void chargeDonne()
{ {
var donnee = Persi.chargeDonnee(); var donnee = Persi.chargeDonnee();
listUtil.AddRange(donnee); listUtil.AddRange(donnee.Item1);
listComp.AddRange(donnee.Item2);
Console.Write("SJBEVKBV<SBDVK<KBCBJCqCeCsVHQ%LRVKzropjv$ptihujhbgoZRGJ"); Console.Write("SJBEVKBV<SBDVK<KBCBJCqCeCsVHQ%LRVKzropjv$ptihujhbgoZRGJ");
} }
public void sauvegardeDonnee() public void sauvegardeDonnee()
{ {
Persi.sauvegardeDonnee(listUtil); Persi.sauvegardeDonnee(listUtil,listComp);
} }
public void ajouterUtilisateur(Utilisateur utilisateur) public void ajouterUtilisateur(Utilisateur utilisateur)
@ -40,5 +42,9 @@ namespace CanYouBuildIt.Model
listUtil.Add(utilisateur); listUtil.Add(utilisateur);
} }
public void ajouterUtilisateur(Composant composant)
{
listComp.Add(composant);
}
} }
} }

@ -9,21 +9,27 @@ namespace CanYouBuildIt.Model
public class Stub : IPersistanceManager public class Stub : IPersistanceManager
{ {
public Stub() { } public Stub() { }
public List<Utilisateur> chargeDonnee() public (List<Utilisateur>,List<Composant>) chargeDonnee()
{ {
List<Utilisateur> lu = new List<Utilisateur>(); List<Utilisateur> lu = new List<Utilisateur>();
Utilisateur n1 = new Utilisateur("Clément", "1234"); List<Composant> lc = new List<Composant>();
Utilisateur n2 = new Utilisateur("Vivien", "vivien");
Utilisateur n3 = new Utilisateur("Kevin", "0000");
lu.Add(n1);
lu.Add(n2);
lu.Add(n3);
return lu;
}
public bool sauvegardeDonnee(List<Utilisateur> lu) Utilisateur u1 = new Utilisateur("Clément", "1234");
{ Utilisateur u2 = new Utilisateur("Vivien", "vivien");
return true; Utilisateur u3 = new Utilisateur("Kevin", "0000");
lu.Add(u1);
lu.Add(u2);
lu.Add(u3);
Composant c1 = new Composant("ASUS RTX 3060", TypeComposant.CarteGraphique, (float)453.99, "https://www.amazon.fr/ASUS-DUAL-NVIDIA-GeForce-GDDR6/dp/B096658ZWP");
Composant c2 = new Composant("Kingston Kit mémoire FURY Beast 16 Go (2 x 8 Go) 3200 MHz DDR4 CL16", TypeComposant.Ram, (float)49.99, "https://www.amazon.fr/Kingston-3200MHz-M%C3%A9moire-KF432C16BBK2-16/dp/B097K2WBL3/");
lc.Add(c1);
lc.Add(c2);
return (lu,lc);
} }
public void sauvegardeDonnee(List<Utilisateur> lu,List<Composant> lc)
{ }
} }
} }

Loading…
Cancel
Save