diff --git a/Sources/Persistance/Persistance.cs b/Sources/Persistance/Persistance.cs index 107af76..7e8607a 100644 --- a/Sources/Persistance/Persistance.cs +++ b/Sources/Persistance/Persistance.cs @@ -26,10 +26,10 @@ namespace StimPersistance using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, games); } - public void SaveUser(List users) + public void SaveUser(HashSet users) { XmlWriterSettings settings = new() { Indent = true }; - DataContractSerializer serializer = new(typeof(List)); + DataContractSerializer serializer = new(typeof(HashSet)); using (TextWriter tw = File.CreateText("users.xml")) using (XmlWriter writer = XmlWriter.Create(tw, settings)) serializer.WriteObject(writer, users); @@ -45,12 +45,12 @@ namespace StimPersistance return new(); } - public List LoadUser() + public HashSet LoadUser() { if (File.Exists("users.xml")) { - DataContractSerializer serializer = new(typeof(List)); - using (Stream stream = File.OpenRead("users.xml")) return serializer.ReadObject(stream) as List; + DataContractSerializer serializer = new(typeof(HashSet)); + using (Stream stream = File.OpenRead("users.xml")) return serializer.ReadObject(stream) as HashSet; } return new(); } diff --git a/Sources/Stim.Model/IPersistance.cs b/Sources/Stim.Model/IPersistance.cs index 0717c75..36e784f 100644 --- a/Sources/Stim.Model/IPersistance.cs +++ b/Sources/Stim.Model/IPersistance.cs @@ -5,9 +5,9 @@ namespace Model public interface IPersistance { public void SaveGame(ObservableCollection games); - public void SaveUser(List users); + public void SaveUser(HashSet users); public ObservableCollection LoadGame(); - public List LoadUser(); + public HashSet LoadUser(); } } diff --git a/Sources/Stim.Model/Manager.cs b/Sources/Stim.Model/Manager.cs index 906f152..0c751a7 100644 --- a/Sources/Stim.Model/Manager.cs +++ b/Sources/Stim.Model/Manager.cs @@ -1,4 +1,5 @@ using System.Collections.ObjectModel; +using System.Linq; namespace Model { @@ -13,7 +14,7 @@ namespace Model public ObservableCollection GameList { get;} public ObservableCollection ResearchedGame { get; set; } public User CurrentUser { get; set; } - public List Users { get; set; } + public HashSet Users { get; set; } public Manager(IPersistance persistance) { @@ -22,7 +23,10 @@ namespace Model GameList = persistance.LoadGame(); ResearchedGame = persistance.LoadGame(); Users = persistance.LoadUser(); - if (GameList == null) { GameList = new ObservableCollection();} + if (GameList == null) + { + GameList = new ObservableCollection(); + } } public void AddGametoGamesList(Game game) diff --git a/Sources/Stim.Model/User.cs b/Sources/Stim.Model/User.cs index 5355e36..faac0bf 100644 --- a/Sources/Stim.Model/User.cs +++ b/Sources/Stim.Model/User.cs @@ -97,6 +97,10 @@ namespace Model if (string.IsNullOrWhiteSpace(Username)) return false; return other != null && Username.Equals(other.Username); } + public override int GetHashCode() + { + return Username.GetHashCode(); + } public void AddReview(Game game, float rate, string text) { diff --git a/Sources/Stub/Stub.cs b/Sources/Stub/Stub.cs index 1ebfa0e..2bfa2fa 100644 --- a/Sources/Stub/Stub.cs +++ b/Sources/Stub/Stub.cs @@ -43,14 +43,14 @@ namespace StimStub return tmp; } - public void SaveUser(List users) + public void SaveUser(HashSet users) { foreach (User user in users) if (!users.Contains(user)) users.Add(user); } - public List LoadUser() + public HashSet LoadUser() { - List tmp = new(); + HashSet tmp = new(); return tmp; }