using Microsoft.EntityFrameworkCore; namespace ImageBoardServerApp.Data.Repository; public static class PostsRepository { public static async Task> getPostsAsync() { await using var db = new AppDBContext(); return await db.Posts.ToListAsync(); } public static async Task> getPostsByBoardAsync(string board) { await using var db = new AppDBContext(); return await db.Posts .Where(post => post.Board.Equals(board)) .Include(post => post.Image) .Include(post => post.Comments) .Include(post => post.User) .ToListAsync(); } public static async Task getPostByIdAsync(int postId) { await using var db = new AppDBContext(); return await db.Posts .Where(post => post.PostID == postId) .Include(post => post.Image) .Include(post => post.Comments) .Include(post => post.User) .FirstOrDefaultAsync(); //return await db.Posts.FirstOrDefaultAsync(post => post.PostID == postId); } public static async Task getPostByGETAsync(string board, int get) { await using var db = new AppDBContext(); return await db.Posts .Where(post => post.GET == get) .Where(post => post.Board == board) .Include(post => post.Image) .Include(post => post.Comments) .Include(post => post.User) .FirstOrDefaultAsync(); //return await db.Posts.FirstOrDefaultAsync(post => post.PostID == postId); } public static async Task createPostAsync(PostData postToCreate) { await using var db = new AppDBContext(); await db.Posts.AddAsync(postToCreate); if (await db.SaveChangesAsync() >= 1) { Console.WriteLine($"Created post with ID: {postToCreate.PostID}"); return postToCreate.PostID; } return -1; } public static async Task updatePostAsync(PostData postToUpdate) { await using var db = new AppDBContext(); db.Posts.Update(postToUpdate); return await db.SaveChangesAsync() >= 1; } public static async Task deletePostAsync(int postId) { await using var db = new AppDBContext(); PostData postToDelete = await getPostByIdAsync(postId); db.Remove(postToDelete); return await db.SaveChangesAsync() >= 1; } }