using LiteDB; using RunnersMeet.Server.Domain; namespace RunnersMeet.Server.Persistence; public class TracksQuery : ITracksQuery { private readonly IDatabase _database; private readonly ILiteQueryable _query; public TracksQuery(IDatabase database) { _database = database; _query = _database.Tracks.Query(); } public TracksQuery ForOwner(string owner) { _query.Where(track => track.Owner == owner); return this; } public TracksQuery FilterByName(string value) { _query.Where(track => track.DisplayName.Contains(value)); return this; } public TracksQuery Paging(int offset, int limit) { _query.OrderBy(track => track.DisplayName).Offset(offset).Limit(limit); return this; } public IList Get() { return _query.ToList(); } }