using System.Linq; using System; using System.IO; using System.Collections.Generic; using Newtonsoft.Json; namespace LobbyServer { class ScoresManager { public const string FileName = "scores.json"; public string FilePath => Path.Combine(Environment.CurrentDirectory, FileName); private List _scores; public IReadOnlyList Scores => _scores.AsReadOnly(); public ScoresManager() { if (File.Exists("scores.json")) { _scores = JsonConvert.DeserializeObject>(File.ReadAllText(FilePath)); } else { _scores = new List(); _scores.Add(new ScoreEntry("QuadraLudi", 0)); } } public void Add(ScoreEntry entry) { _scores.Add(entry); Sort(); } public void Save() { File.WriteAllText(FilePath, JsonConvert.SerializeObject(_scores)); } private void Sort() { _scores = _scores.OrderByDescending(x => x.Score).ToList(); } } }