|
@@ -8,11 +8,7 @@ public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
|
|
|
{
|
|
{
|
|
|
public async Task<Response> Handle(Query request, CancellationToken ct)
|
|
public async Task<Response> Handle(Query request, CancellationToken ct)
|
|
|
{
|
|
{
|
|
|
- var query = db.Comment.AsNoTracking()
|
|
|
|
|
- .Include(c => c.Board)
|
|
|
|
|
- .Include(c => c.Post)
|
|
|
|
|
- .Where(c => c.IsDeleted)
|
|
|
|
|
- .AsQueryable();
|
|
|
|
|
|
|
+ var query = db.Comment.AsNoTracking().Include(c => c.Board).Include(c => c.Post).Where(c => c.IsDeleted).AsQueryable();
|
|
|
|
|
|
|
|
if (request.BoardID.HasValue)
|
|
if (request.BoardID.HasValue)
|
|
|
{
|
|
{
|
|
@@ -22,7 +18,14 @@ public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
|
|
|
if (!string.IsNullOrWhiteSpace(request.Keyword))
|
|
if (!string.IsNullOrWhiteSpace(request.Keyword))
|
|
|
{
|
|
{
|
|
|
var kw = request.Keyword.Trim();
|
|
var kw = request.Keyword.Trim();
|
|
|
- query = query.Where(c => c.Content.Contains(kw));
|
|
|
|
|
|
|
+ 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.Content.Contains(kw)),
|
|
|
|
|
+ 4 => query.Where(c => (c.Name != null && c.Name.Contains(kw)) || (c.SID != null && c.SID.Contains(kw))),
|
|
|
|
|
+ _ => query.Where(c => c.Content.Contains(kw))
|
|
|
|
|
+ };
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(request.StartAt) && DateTime.TryParse(request.StartAt, out var startDate))
|
|
if (!string.IsNullOrWhiteSpace(request.StartAt) && DateTime.TryParse(request.StartAt, out var startDate))
|