|
|
@@ -9,12 +9,7 @@ public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
|
|
|
{
|
|
|
public async Task<Response> Handle(Query request, CancellationToken ct)
|
|
|
{
|
|
|
- var query = db.CommentReaction.AsNoTracking()
|
|
|
- .Include(c => c.Board)
|
|
|
- .Include(c => c.Post)
|
|
|
- .Include(c => c.Comment)
|
|
|
- .Include(c => c.Member)
|
|
|
- .AsQueryable();
|
|
|
+ var query = db.CommentReaction.AsNoTracking().Include(c => c.Board).Include(c => c.Post).Include(c => c.Comment).Include(c => c.Member).AsQueryable();
|
|
|
|
|
|
if (request.BoardID.HasValue)
|
|
|
{
|
|
|
@@ -31,6 +26,18 @@ public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
|
|
|
query = query.Where(c => c.CommentID == request.CommentID.Value);
|
|
|
}
|
|
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(request.Keyword))
|
|
|
+ {
|
|
|
+ var kw = request.Keyword.Trim();
|
|
|
+ query = request.Search switch
|
|
|
+ {
|
|
|
+ 1 => query.Where(c => c.PostID.ToString().Contains(kw)),
|
|
|
+ 2 => query.Where(c => c.Post.Subject.Contains(kw)),
|
|
|
+ 3 => query.Where(c => c.Member != null && c.Member.Name != null && c.Member.Name.Contains(kw)),
|
|
|
+ _ => query.Where(c => c.Post.Subject.Contains(kw))
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
if (request.Reaction.HasValue)
|
|
|
{
|
|
|
query = query.Where(c => c.Reaction == (Reaction)request.Reaction.Value);
|