modifchargsauv

master
Cedric CHARBONNEL 2 years ago
parent 9f3eebb13f
commit ba6b09c554

@ -1,17 +1,22 @@
using LOLAPP.Modele;
using LOLAPP.DataContractPersistance;
using LOLAPP.Modele;
using System.Collections.Generic;
using System.Diagnostics;
namespace LOLAPP;
public partial class App : Application
{
public Manager ChampionManager { get; private set; } = new Manager(new Stub());
public Manager ChampionManager { get; set; } = new Manager(new Stub());
public App()
{
ChampionManager.Chargement();
ChampionManager.Sauvegarde();
ChampionManager.Chargdon();
ChampionManager.Persistance = new DataContractPersistance.DataContract();
ChampionManager.Sauvdon();
Debug.WriteLine("Application lancééé!");
InitializeComponent();
MainPage = new AppShell();
}
}
}

@ -1,47 +0,0 @@
using LOLAPP.Modele;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace LOLAPP.DataContactPersistance
{
public class DataContract : IPersistanceManager
{
public string FilePath2 {get; set;} = Path.Combine(Directory.GetCurrentDirectory(),"//Doss1_XML");
public string FileName { get; set; } = "Test2.xml";
public string FilePath { get; set; } = "C\\Users\\cecharbonn5\\SAE#\\LOLAPP.XML";
public (List<Strategie>, List<Champion>) Chargdon()
{
var serializer = new DataContractSerializer(typeof(List<Strategie>));
List<Strategie> list;
using(Stream s = File.OpenRead(Path.Combine(FilePath, FileName)))
{
list = serializer.ReadObject(s) as List<Strategie>;
}
return (new List<Strategie>(), list);
}
public void Sauvdon(List<Strategie> s, List<Champion> c)
{
var serializer = new DataContractSerializer(typeof(List<Strategie>));
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory crée à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot);
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
using (Stream st = File.Create(Path.Combine(FilePath,FileName)))
{
serializer.WriteObject(st, c);
}
}
}
}

@ -0,0 +1,59 @@
using LOLAPP.Modele;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace LOLAPP.DataContractPersistance
{
public class DataContract : IPersistanceManager
{
public string FilePath2 {get; set;} = Path.Combine(Directory.GetCurrentDirectory(),"//Doss1_XML");
public string FileName { get; set; } = "Test2.xml";
public string FilePath { get; set; } = "C:\\Users\\cecharbonn5\\LOLAPP\\LOLAPP";
public (List<Strategie>, List<Champion>) Chargdon()
{
var serializer = new DataContractSerializer(typeof(DataToPersist));
DataToPersist data;
using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName)))
{
data = serializer.ReadObject(s) as DataToPersist;
}
return (data.strat, data.champ);
}
public void Sauvdon(List<Strategie> s, List<Champion> c)
{
var serializer = new DataContractSerializer(typeof(DataToPersist),
new DataContractSerializerSettings()
{
PreserveObjectReferences = true
}
);
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory crée à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FileName));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
DataToPersist data = new DataToPersist();
data.strat = s;
data.champ = c;
var settings = new XmlWriterSettings() { Indent = true };
using (TextWriter st = File.CreateText(Path.Combine(FilePath, FileName)))
{
using (XmlWriter writer = XmlWriter.Create(st, settings))
{
serializer.WriteObject(writer, data);
}
}
}
}
}

@ -0,0 +1,15 @@
using LOLAPP.Modele;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LOLAPP.DataContractPersistance
{
public class DataToPersist
{
public List<Champion> champ { get; set; } = new List<Champion>();
public List<Strategie> strat { get; set; } = new List<Strategie>();
}
}

@ -1,13 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace LOLAPP.Modele
{
[DataContract]
public class Ability
{
[DataMember]
public string Name { get; set; }
public Ability(string name)

@ -7,11 +7,11 @@ using System.Xml.Linq;
namespace LOLAPP.Modele
{
public class Manager : IPersistanceManager
public class Manager
{
public List<Champion> _champions { get; private set; }
public List<Strategie> _strategies { get; private set; }
public IPersistanceManager Persistance { get; }
public List<Champion> _champions { get; set; }
public List<Strategie> _strategies { get; set; }
public IPersistanceManager Persistance { get; set; }
public Manager(IPersistanceManager Pers)
{
@ -19,6 +19,11 @@ namespace LOLAPP.Modele
_strategies = new List<Strategie>();
Persistance = Pers;
}
public Manager()
{
_champions = new List<Champion>();
_strategies = new List<Strategie>();
}
public void AddChampion(Champion champion)
{
@ -69,22 +74,23 @@ namespace LOLAPP.Modele
return _strategies;
}
public (List<Strategie>, List<Champion>) Chargdon()
{
int donnees = Persistance.Chargdon();
foreach (var i in donnees.List<Strategie>)
public void Chargdon() {
var don = Persistance.Chargdon();
foreach (var i in don.Item1)
{
AddStrategie(i);
}
foreach (var j in donnees.List<Champion>)
foreach (var j in don.Item2)
{
AddChampion(j);
}
}
public void Sauvdon(List<Strategie> s, List<Champion> c)
public void Sauvdon()
{
Persistance.Sauvdon(s, c);
Persistance.Sauvdon(_strategies, _champions);
}
}
}

@ -1,14 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace LOLAPP.Modele
{
[DataContract]
public class Strategie
{
[DataMember]
public string Name { get; set; }
[DataMember]
public List<Champion> Champions { get; set; }
public Strategie(string name, List<Champion> champions)

@ -6,7 +6,26 @@ using System.Threading.Tasks;
namespace LOLAPP.Modele
{
public class Stub
public class Stub : IPersistanceManager
{
public Stub() { }
public (List<Strategie>, List<Champion>) Chargdon()
{
List<Strategie> s = new List<Strategie>();
List<Champion> c = new List<Champion>();
List<Ability> a = new List<Ability>();
Ability a1 = new Ability("Broken Wings");
a.Add(a1);
Champion c1 = new Champion("Riven", a);
c.Add(c1);
Strategie s1 = new Strategie("Broken", c);
s.Add(s1);
return (s,c);
}
public void Sauvdon(List<Strategie> s, List<Champion> c)
{
throw new NotImplementedException();
}
}
}
}

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<DataToPersist xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://schemas.datacontract.org/2004/07/LOLAPP.DataContractPersistance">
<champ xmlns:d2p1="http://schemas.datacontract.org/2004/07/LOLAPP.Modele" z:Id="2" z:Size="1">
<d2p1:Champion z:Id="3">
<d2p1:Abilities z:Id="4" z:Size="1">
<d2p1:Ability z:Id="5">
<d2p1:Name z:Id="6">Broken Wings</d2p1:Name>
</d2p1:Ability>
</d2p1:Abilities>
<d2p1:Name z:Id="7">Riven</d2p1:Name>
</d2p1:Champion>
</champ>
<strat xmlns:d2p1="http://schemas.datacontract.org/2004/07/LOLAPP.Modele" z:Id="8" z:Size="1">
<d2p1:Strategie z:Id="9">
<d2p1:Champions z:Id="10" z:Size="1">
<d2p1:Champion z:Ref="3" i:nil="true" />
</d2p1:Champions>
<d2p1:Name z:Id="11">Broken</d2p1:Name>
</d2p1:Strategie>
</strat>
</DataToPersist>
Loading…
Cancel
Save