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 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
{
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()
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;
}
}
}

@ -67,6 +67,7 @@ namespace Model
}
private ObservableCollection<string> tags;
[DataMember]
public List<Review> Reviews { get; private init; }
[DataMember]
@ -104,7 +105,14 @@ namespace Model
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()

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -8,9 +9,9 @@ namespace Model
{
public interface IPersistance
{
public List<Game> LoadGame();
public List<User> LoadUser();
public void SaveGame(ObservableCollection<Game> games);
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)
{
_persistance = persistance;
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.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"));
Games = _persistance.LoadGame();
}
}
}

@ -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 Model
{
[DataContract]
public class Review
{
[DataMember]
public float Rate
{
get
@ -22,6 +25,7 @@ namespace Model
}
private float rate;
[DataMember]
public string Text
{
get
@ -36,6 +40,7 @@ namespace Model
}
private string text;
[DataMember]
public string AuthorName
{
get { return authorName; }
@ -51,6 +56,13 @@ namespace Model
Text = text;
}
public Review() { }
public override string ToString()
{
return $"{AuthorName} : {Rate} : {Text}\n";
}
public void EditReview(string text)
{
Text = text+" (Modifié)";

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

@ -1,27 +1,40 @@
using Model;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using System.Xml;
namespace Stub
namespace StimStub
{
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