Ejemplo n.º 1
0
        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);
            });
        }
Ejemplo n.º 2
0
        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);
            }));
        }