Persistance + stub de la gameList
continuous-integration/drone/push Build is passing Details

Popup_qui_marche_pas
Anthony RICHARD 2 years ago
parent 2c1ef98683
commit cb605f46ed

@ -1,5 +1,31 @@
using Model; using Model;
using StimPersistance; using StimPersistance;
using Stub; using StimStub;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using System.Xml;
IPersistance persistance = new Persistance(); namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
ObservableCollection<Game> games = new ObservableCollection<Game>();
games.Add(new("Elden Ring", "description", 2010, new List<string> { "1", "2", "3" }, "elden_ring.jpg"));
games[0].AddReview(new(5, "C'est trop bien"));
games[0].AddReview(new(3.5f, "C'est bien"));
games[0].AddReview(new(1.5f, "C'est pas bien"));
games[0].AddReview(new(4, "C'est trop bien"));
games[0].AddReview(new(3f, "C'est bien"));
games[0].AddReview(new(2.5f, "C'est pas bien"));
games.Add(new("Minecraft", "description", 2010, new List<string> { "1", "2", "3" }, "minecraft.jpeg"));
games.Add(new("Celeste", "description", 2010, new List<string> { "1", "2" }, "celeste.png"));
games.Add(new("GTA V", "description", 2010, new List<string> { "1", "2", "3" }, "gta_v.png"));
IPersistance stub = new Stub();
stub.SaveGame(games);
}
}
}

@ -1,27 +1,40 @@
using Model; using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using System.Xml;
using Model;
namespace StimPersistance namespace StimPersistance
{ {
public class Persistance : IPersistance public class Persistance : IPersistance
{ {
public List<Game> LoadGame() public Persistance()
{ {
return null; Directory.SetCurrentDirectory("C:\\Users\\Admin\\source\\repos\\Projet_IHM\\Sources\\XML");
}
public List<User> LoadUser()
{
return null;
} }
public void SaveGame(List<Game> games) public void SaveGame(ObservableCollection<Game> games)
{ {
XmlWriterSettings settings = new() { Indent = true };
DataContractSerializer serializer = new(typeof(ObservableCollection<Game>));
using (TextWriter tw = File.CreateText("games.xml"))
using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, games);
} }
public void SaveUser(List<User> users) public void SaveUser(List<User> users)
{ {
}
public ObservableCollection<Game> LoadGame()
{
DataContractSerializer serializer = new(typeof(ObservableCollection<Game>));
using (Stream stream = File.OpenRead("games.xml")) return serializer.ReadObject(stream) as ObservableCollection<Game>;
} }
public List<User> LoadUser()
{
return null;
}
} }
} }

@ -67,6 +67,7 @@ namespace Model
} }
private ObservableCollection<string> tags; private ObservableCollection<string> tags;
[DataMember]
public List<Review> Reviews { get; private init; } public List<Review> Reviews { get; private init; }
[DataMember] [DataMember]
@ -104,7 +105,14 @@ namespace Model
public override string ToString() public override string ToString()
{ {
return $"{Name} : {Description} : {Year} : {Cover}"; string s = $"{Name} : {Description} : {Year} : {Cover}\n";
foreach(Review review in Reviews)
{
s += review;
}
return s+"\n";
} }
public float GetAvgRate() public float GetAvgRate()

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -8,9 +9,9 @@ namespace Model
{ {
public interface IPersistance public interface IPersistance
{ {
public List<Game> LoadGame(); public void SaveGame(ObservableCollection<Game> games);
public List<User> LoadUser();
public void SaveUser(List<User> users); public void SaveUser(List<User> users);
public void SaveGame(List<Game> games); public ObservableCollection<Game> LoadGame();
public List<User> LoadUser();
} }
} }

@ -15,13 +15,7 @@ namespace Model
public Manager(IPersistance persistance) public Manager(IPersistance persistance)
{ {
_persistance = persistance; _persistance = persistance;
Games.Add(new("Elden Ring", "description", 2010, new List<string> { "1","2","3"}, "elden_ring.jpg")); Games = _persistance.LoadGame();
Games[0].AddReview(new(5, "C'est trop bien"));
Games[0].AddReview(new(3.5f, "C'est bien"));
Games[0].AddReview(new(1.5f, "C'est pas bien"));
Games.Add(new("Minecraft", "description", 2010, new List<string> { "1", "2", "3" }, "minecraft.jpeg"));
Games.Add(new("Celeste", "description", 2010, new List<string> { "1", "2" }, "celeste.png"));
Games.Add(new("GTA V", "description", 2010, new List<string> { "1", "2", "3" }, "gta_v.png"));
} }
} }
} }

@ -1,13 +1,16 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Model namespace Model
{ {
[DataContract]
public class Review public class Review
{ {
[DataMember]
public float Rate public float Rate
{ {
get get
@ -22,6 +25,7 @@ namespace Model
} }
private float rate; private float rate;
[DataMember]
public string Text public string Text
{ {
get get
@ -36,6 +40,7 @@ namespace Model
} }
private string text; private string text;
[DataMember]
public string AuthorName public string AuthorName
{ {
get { return authorName; } get { return authorName; }
@ -51,6 +56,13 @@ namespace Model
Text = text; Text = text;
} }
public Review() { }
public override string ToString()
{
return $"{AuthorName} : {Rate} : {Text}\n";
}
public void EditReview(string text) public void EditReview(string text)
{ {
Text = text+" (Modifié)"; Text = text+" (Modifié)";

@ -1,18 +1,9 @@
using System; using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Linq;
using System.Security;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace Model namespace Model
{ {
public class User public class User
{ {
static int nbUser = 0;
private int id;
public string Username public string Username
{ {
get { return username; } get { return username; }
@ -70,9 +61,6 @@ namespace Model
public User(string username, string biographie, string email, string password) public User(string username, string biographie, string email, string password)
{ {
nbUser++;
id = nbUser;
Username = username; Username = username;
Biographie = biographie; Biographie = biographie;
Email = email; Email = email;

@ -1,27 +1,40 @@
using Model; using Model;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using System.Xml;
namespace Stub namespace StimStub
{ {
public class Stub : IPersistance public class Stub : IPersistance
{ {
public List<Game> LoadGame() public Stub()
{ {
return null; Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//..//XML//"));
} }
public List<User> LoadUser() public void SaveGame(ObservableCollection<Game> games)
{ {
return null; XmlWriterSettings settings = new() { Indent = true };
DataContractSerializer serializer = new(typeof(ObservableCollection<Game>));
using (TextWriter tw = File.CreateText("games.xml"))
using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, games);
} }
public void SaveGame(List<Game> games) public void SaveUser(List<User> users)
{ {
} }
public void SaveUser(List<User> users) public ObservableCollection<Game> LoadGame()
{ {
DataContractSerializer serializer = new(typeof(ObservableCollection<Game>));
using (Stream stream = File.OpenRead("games.xml")) return serializer.ReadObject(stream) as ObservableCollection<Game>;
}
public List<User> LoadUser()
{
return null;
} }
} }
} }

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfGame xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Model">
<Game>
<Average>3.5</Average>
<Cover>elden_ring.jpg</Cover>
<Description>description</Description>
<Name>Elden Ring</Name>
<Reviews>
<Review>
<AuthorName i:nil="true" />
<Rate>5</Rate>
<Text>C'est trop bien</Text>
</Review>
<Review>
<AuthorName i:nil="true" />
<Rate>3.5</Rate>
<Text>C'est bien</Text>
</Review>
<Review>
<AuthorName i:nil="true" />
<Rate>1.5</Rate>
<Text>C'est pas bien</Text>
</Review>
<Review>
<AuthorName i:nil="true" />
<Rate>4</Rate>
<Text>C'est trop bien</Text>
</Review>
<Review>
<AuthorName i:nil="true" />
<Rate>3</Rate>
<Text>C'est bien</Text>
</Review>
<Review>
<AuthorName i:nil="true" />
<Rate>2.5</Rate>
<Text>C'est pas bien</Text>
</Review>
</Reviews>
<Tags xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>1</d3p1:string>
<d3p1:string>2</d3p1:string>
<d3p1:string>3</d3p1:string>
</Tags>
<Year>2010</Year>
</Game>
<Game>
<Average>0</Average>
<Cover>minecraft.jpeg</Cover>
<Description>description</Description>
<Name>Minecraft</Name>
<Reviews />
<Tags xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>1</d3p1:string>
<d3p1:string>2</d3p1:string>
<d3p1:string>3</d3p1:string>
</Tags>
<Year>2010</Year>
</Game>
<Game>
<Average>0</Average>
<Cover>celeste.png</Cover>
<Description>description</Description>
<Name>Celeste</Name>
<Reviews />
<Tags xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>1</d3p1:string>
<d3p1:string>2</d3p1:string>
</Tags>
<Year>2010</Year>
</Game>
<Game>
<Average>0</Average>
<Cover>gta_v.png</Cover>
<Description>description</Description>
<Name>GTA V</Name>
<Reviews />
<Tags xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>1</d3p1:string>
<d3p1:string>2</d3p1:string>
<d3p1:string>3</d3p1:string>
</Tags>
<Year>2010</Year>
</Game>
</ArrayOfGame>
Loading…
Cancel
Save