public void loadFromFile() { fileReader = new StreamReader(filePath); //Open file string jsonString = fileReader.ReadLine(); //file contains one line only by design (ends with \n) - json formatting fileReader.Close(); //Close file - avoid file exceptions fileReader.Dispose(); if (jsonString != null && jsonString.Length > 0) //If string exist { JObject jsonObject = JObject.Parse(jsonString); //Parse string into jsonobject for easier manipulation JArray users = jsonObject.GetValue("users") as JArray; //Get user array from jsonobject if (users != null) { foreach (JObject u in users) //Add users to users list { User user = new User(u.GetValue("username").ToString()); JArray score = u.GetValue("scoreboard") as JArray; user.loadScoreboardArray(score.ToObject<int[]>()); bool userExcist = false; //If user exist - refresh scoreboard foreach (User ue in this.users) { if (ue.getUsername().CompareTo(user.getUsername()) == 0) { userExcist = true; ue.loadScoreboardArray(score.ToObject<int[]>()); break; } } if (!userExcist) //If user doesent exist - add { this.users.Add(user); } } } } }
private void btn_getuser_Click(object sender, EventArgs e) { if (usernameTextbox.Text.Length > 0) { loadFromFile(); //Reload foreach(User u in users) //Check if user exsist { if(u.getUsername().CompareTo(usernameTextbox.Text) == 0) { currentUser = u; statisticsBox.DataSource = u.getScoreboardArray(); currentUserLabel.Text = u.getUsername(); return; //Function returns here (stops) } } //This only runs if user not found User user = new User(usernameTextbox.Text); currentUser = user; users.Add(user); statisticsBox.DataSource = user.getScoreboardArray(); //Show user scoreboard currentUserLabel.Text = user.getUsername(); writeToFile(); //Write changes to file } }