| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using LiteDB;
- using RunnersMeet.Server.Domain;
- namespace RunnersMeet.Server.Persistence;
- public class TracksQuery : ITracksQuery
- {
- private readonly IDatabase _database;
- private readonly ILiteQueryable<Track> _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<Track> Get()
- {
- return _query.ToList();
- }
- }
|