Feat : Hash set

Popup_qui_marche_pas
BelsethUwU 2 years ago
parent 7201d5e2f6
commit 17f4608a44

@ -26,10 +26,10 @@ namespace StimPersistance
using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, games); using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, games);
} }
public void SaveUser(List<User> users) public void SaveUser(HashSet<User> users)
{ {
XmlWriterSettings settings = new() { Indent = true }; XmlWriterSettings settings = new() { Indent = true };
DataContractSerializer serializer = new(typeof(List<User>)); DataContractSerializer serializer = new(typeof(HashSet<User>));
using (TextWriter tw = File.CreateText("users.xml")) using (TextWriter tw = File.CreateText("users.xml"))
using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, users); using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, users);
@ -45,12 +45,12 @@ namespace StimPersistance
return new(); return new();
} }
public List<User> LoadUser() public HashSet<User> LoadUser()
{ {
if (File.Exists("users.xml")) if (File.Exists("users.xml"))
{ {
DataContractSerializer serializer = new(typeof(List<User>)); DataContractSerializer serializer = new(typeof(HashSet<User>));
using (Stream stream = File.OpenRead("users.xml")) return serializer.ReadObject(stream) as List<User>; using (Stream stream = File.OpenRead("users.xml")) return serializer.ReadObject(stream) as HashSet<User>;
} }
return new(); return new();
} }

@ -5,9 +5,9 @@ namespace Model
public interface IPersistance public interface IPersistance
{ {
public void SaveGame(ObservableCollection<Game> games); public void SaveGame(ObservableCollection<Game> games);
public void SaveUser(List<User> users); public void SaveUser(HashSet<User> users);
public ObservableCollection<Game> LoadGame(); public ObservableCollection<Game> LoadGame();
public List<User> LoadUser(); public HashSet<User> LoadUser();
} }
} }

@ -1,4 +1,5 @@
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq;
namespace Model namespace Model
{ {
@ -13,7 +14,7 @@ namespace Model
public ObservableCollection<Game> GameList { get;} public ObservableCollection<Game> GameList { get;}
public ObservableCollection<Game> ResearchedGame { get; set; } public ObservableCollection<Game> ResearchedGame { get; set; }
public User CurrentUser { get; set; } public User CurrentUser { get; set; }
public List<User> Users { get; set; } public HashSet<User> Users { get; set; }
public Manager(IPersistance persistance) public Manager(IPersistance persistance)
{ {
@ -22,7 +23,10 @@ namespace Model
GameList = persistance.LoadGame(); GameList = persistance.LoadGame();
ResearchedGame = persistance.LoadGame(); ResearchedGame = persistance.LoadGame();
Users = persistance.LoadUser(); Users = persistance.LoadUser();
if (GameList == null) { GameList = new ObservableCollection<Game>();} if (GameList == null)
{
GameList = new ObservableCollection<Game>();
}
} }
public void AddGametoGamesList(Game game) public void AddGametoGamesList(Game game)

@ -97,6 +97,10 @@ namespace Model
if (string.IsNullOrWhiteSpace(Username)) return false; if (string.IsNullOrWhiteSpace(Username)) return false;
return other != null && Username.Equals(other.Username); return other != null && Username.Equals(other.Username);
} }
public override int GetHashCode()
{
return Username.GetHashCode();
}
public void AddReview(Game game, float rate, string text) public void AddReview(Game game, float rate, string text)
{ {

@ -43,14 +43,14 @@ namespace StimStub
return tmp; return tmp;
} }
public void SaveUser(List<User> users) public void SaveUser(HashSet<User> users)
{ {
foreach (User user in users) if (!users.Contains(user)) users.Add(user); foreach (User user in users) if (!users.Contains(user)) users.Add(user);
} }
public List<User> LoadUser() public HashSet<User> LoadUser()
{ {
List<User> tmp = new(); HashSet<User> tmp = new();
return tmp; return tmp;
} }

Loading…
Cancel
Save