using Microsoft.EntityFrameworkCore; namespace ImageBoardServerApp.Data.Repository; public static class UsersRepository { public static async Task> getUsersAsync() { await using var db = new AppDBContext(); return await db.Users.ToListAsync(); } public static async Task getUserByIdAsync(int userId) { await using var db = new AppDBContext(); return await db.Users.FirstOrDefaultAsync(user => user.UserID == userId); } public static async Task getUserByIPAsync(string userIp) { await using var db = new AppDBContext(); return await db.Users.FirstOrDefaultAsync(user => user.Ipv4Address == userIp); } public static async Task createUserAsync(UserData userToCreate) { await using var db = new AppDBContext(); await db.Users.AddAsync(userToCreate); if (await db.SaveChangesAsync() >= 1) { Console.WriteLine($"Created user with ID: {userToCreate.UserID}"); return userToCreate.UserID; } return -1; } public static async Task updateUserAsync(UserData userToUpdate) { await using var db = new AppDBContext(); db.Users.Update(userToUpdate); return await db.SaveChangesAsync() >= 1; } public static async Task deleteUserAsync(int userId) { await using var db = new AppDBContext(); UserData userToDelete = await getUserByIdAsync(userId); db.Remove(userToDelete); return await db.SaveChangesAsync() >= 1; } }