using DynamicData; using HelloItQuantum.Models; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace HelloItQuantum.Function { public static class WorkWithFile { private static string filePath = "user.csv"; /// /// Считывает пользователей из файла /// /// Возвращает null - если файл пустой (не существует) или возвращает модель static public List? GetAllUsers() { if (!File.Exists(filePath)) { using (FileStream fs = new FileStream(filePath, FileMode.Create)) {} return null; } List users = new List(); using (StreamReader read = new StreamReader(filePath)) { while (!read.EndOfStream) { string[] row = read.ReadLine().Split(';'); if (row.Length == 6) { User user = new User(); user.Nickname = row[0]; user.Name = row[1]; user.Surname = row[2]; user.GameHotkeys = Convert.ToInt32(row[3]); user.GameCreateFriend = Convert.ToInt32(row[4]); user.GameLabyrinth = Convert.ToInt32(row[5]); users.Add(user); } } } return users; } /// /// Добавляет пользователя в файл /// /// Новый пользователь /// true если пользователь добавлен, false - пользователь уже существует static public bool IsWriteUserInFile(User newUser) { List? users = GetAllUsers(); bool exists = users.Any(item => item.Nickname == newUser.Nickname); if (exists) { return false; } using (StreamWriter writer = new StreamWriter(filePath, true)) { writer.WriteLine($"{newUser.Nickname};{newUser.Name};{newUser.Surname};{newUser.GameHotkeys};{newUser.GameCreateFriend};{newUser.GameLabyrinth}"); } return true; } static public void UpdateValueGameProgress(int game, int value, User currentUser) { List? users = GetAllUsers(); users.Remove(users.FirstOrDefault(it => it.Nickname == currentUser.Nickname)); switch (game) { case 1: currentUser.GameHotkeys = currentUser.GameHotkeys < value ? value : currentUser.GameHotkeys; break; case 2: currentUser.GameLabyrinth = value; break; case 3: currentUser.GameCreateFriend = value; break; } users.Add(currentUser); using (StreamWriter writer = new StreamWriter(filePath, false)) { foreach (User newUser in users) { writer.WriteLine($"{newUser.Nickname};{newUser.Name};{newUser.Surname};{newUser.GameHotkeys};{newUser.GameCreateFriend};{newUser.GameLabyrinth}"); } } } } }