Files
EonaCat.Logger/EonaCat.Logger.LogServer/Services/ISearchService.cs
2026-01-08 15:18:34 +01:00

30 lines
823 B
C#

using LogCentral.Server.Data;
using LogCentral.Server.Models;
using Microsoft.EntityFrameworkCore;
namespace LogCentral.Server.Services;
public interface ISearchService
{
Task<List<LogEntry>> SearchAsync(string query, int limit = 100);
}
public class SearchService : ISearchService
{
private readonly LogCentralDbContext _context;
public SearchService(LogCentralDbContext context)
{
_context = context;
}
public async Task<List<LogEntry>> SearchAsync(string query, int limit = 100)
{
return await _context.LogEntries
.Where(l => EF.Functions.Like(l.Message, $"%{query}%") ||
EF.Functions.Like(l.Exception ?? "", $"%{query}%"))
.OrderByDescending(l => l.Timestamp)
.Take(limit)
.ToListAsync();
}
}