public SeekedList<Guid> GetAllSubs(string searchText = null, SubsSortBy sortBy = SubsSortBy.Relevance, int? skip = null, int? take = null) { return _conn.Perform(conn => { var query = conn.From<Sub>(); if (!string.IsNullOrEmpty(searchText)) query.Where(x => x.Name.Contains(searchText)).OrderBy(x => x.Name); var totalCount = conn.Count(query); query.Skip(skip).Take(take); switch (sortBy) { case SubsSortBy.Relevance: break; // let db do its thing case SubsSortBy.Subscribers: query.OrderByDescending(x => x.NumberOfSubscribers); break; } query.SelectExpression = "SELECT \"id\""; return new SeekedList<Guid>(conn.Select(query).Select(x => x.Id), skip ?? 0, take, totalCount); }); }
public SeekedList <Guid> GetAllSubs(string searchText = null, SubsSortBy sortBy = SubsSortBy.Relevance, bool?nsfw = null, int?skip = null, int?take = null) { return(_conn.Perform(conn => { var query = conn.From <Sub>(); if (!string.IsNullOrEmpty(searchText)) { query.Where(x => x.Name.Contains(searchText)).OrderBy(x => x.Name); } if (nsfw.HasValue) { query.Where(x => x.IsNsfw == nsfw.Value); } var totalCount = conn.Count(query); query.Skip(skip).Take(take); switch (sortBy) { case SubsSortBy.Relevance: break; // let db do its thing case SubsSortBy.Subscribers: query.OrderByDescending(x => x.Subscribers); break; case SubsSortBy.New: query.OrderByDescending(x => x.CreatedAt); break; } query.SelectExpression = "SELECT \"id\""; return new SeekedList <Guid>(conn.Select(query).Select(x => x.Id), skip ?? 0, take, totalCount); })); }