using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ToDoApp.Context; using ToDoApp.Model; using ToDoApp.Utility; namespace ToDoApp.Service { public class UserService { public static UserService Instance { get; set; } = new UserService(); public User? FindUser(int userId) { using (var context = new ToDoContext()) { return context.Users.Find(userId); } } public User? FindUser(string username) { using (var context = new ToDoContext()) { return context.Users.FirstOrDefault(u => u.Name == username); } } public bool CheckUserLogin(string username, string password) { User? user = FindUser(username); if (user == null) return false; return Utils.VerifyPassword(password, user.Password); } public void CreateUser(User user) { using (var context = new ToDoContext()) { user.Password = Utils.HashPassword(user.Password); user.CreateDate = DateTime.Now; context.Users.Add(user); context.SaveChanges(); } } public void DisableUser(int userId) { using (var context = new ToDoContext()) { User? user = context.Users.Find(userId); if (user == null) return; user.Status = UserStatus.Invalid; context.SaveChanges(); } } public void DisableUser(string username) { using (var context = new ToDoContext()) { User? user = context.Users.FirstOrDefault(u => u.Name == username); if (user == null) return; user.Status = UserStatus.Invalid; context.SaveChanges(); } } public void RemoveUser(int userId) { using (var context = new ToDoContext()) { User? user = context.Users.Find(userId); if (user == null) return; context.Users.Remove(user); context.SaveChanges(); } } public void RemoveUser(string username) { using (var context = new ToDoContext()) { User? user = context.Users.FirstOrDefault(u => u.Name == username); if (user == null) return; context.Users.Remove(user); context.SaveChanges(); } } public void RemoveUser(User user) { RemoveUser(user.Id); } } }