85 lines
No EOL
2.8 KiB
C#
85 lines
No EOL
2.8 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace ImageBoardServerApp.Data.Repository;
|
|
|
|
public static class CommentsRepository
|
|
{
|
|
public static async Task<List<CommentData>> getCommentsAsync()
|
|
{
|
|
await using var db = new AppDBContext();
|
|
return await db.Comments.ToListAsync();
|
|
}
|
|
|
|
public static async Task<List<CommentData>> getCommentsByBoardAsync(string board)
|
|
{
|
|
await using var db = new AppDBContext();
|
|
return await db.Comments
|
|
.Where(comment => comment.Board.Equals(board))
|
|
.Include(comment => comment.Image)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public static async Task<CommentData> getCommentByIdAsync(int postId)
|
|
{
|
|
await using var db = new AppDBContext();
|
|
return await db.Comments
|
|
.Where(comment => comment.CommentID == postId)
|
|
.Include(comment => comment.Image)
|
|
.Include(comment => comment.Post)
|
|
.Include(comment => comment.User)
|
|
.Include(comment => comment.Report)
|
|
.FirstOrDefaultAsync();
|
|
}
|
|
|
|
public static async Task<CommentData> getCommentByGETAsync(string board, int get)
|
|
{
|
|
await using var db = new AppDBContext();
|
|
return await db.Comments
|
|
.Where(comment => comment.GET == get)
|
|
.Where(comment => comment.Board == board)
|
|
.Include(comment => comment.Image)
|
|
.Include(comment => comment.Post)
|
|
.Include(comment => comment.User)
|
|
.Include(comment => comment.Report)
|
|
.FirstOrDefaultAsync();
|
|
}
|
|
|
|
public static async Task deleteCommentFromUser(UserData u)
|
|
{
|
|
await using var db = new AppDBContext();
|
|
var l = db.Users
|
|
.Where(x => x.UserID == u.UserID);
|
|
foreach (var e in l)
|
|
db.Remove(e);
|
|
}
|
|
|
|
public static async Task<int> createCommentAsync(CommentData commentData)
|
|
{
|
|
await using var db = new AppDBContext();
|
|
await db.Comments.AddAsync(commentData);
|
|
if (await db.SaveChangesAsync() >= 1)
|
|
{
|
|
Console.WriteLine($"Created comment with ID: {commentData.PostID}");
|
|
return commentData.PostID;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
public static async Task<bool> updateCommentAsync(CommentData commentToUpdate)
|
|
{
|
|
await using var db = new AppDBContext();
|
|
db.Comments.Update(commentToUpdate);
|
|
return await db.SaveChangesAsync() >= 1;
|
|
}
|
|
|
|
public static async Task<bool> deleteCommentAsync(int postId)
|
|
{
|
|
await using var db = new AppDBContext();
|
|
CommentData commentToDelete = await getCommentByIdAsync(postId);
|
|
if (commentToDelete.Report != null)
|
|
db.Remove(commentToDelete.Report);
|
|
db.Remove(commentToDelete);
|
|
return await db.SaveChangesAsync() >= 1;
|
|
}
|
|
} |