private IOrderbyClauseBuilder <T> New(Expression <Func <T, object> > member, OrderbyType type)
        {
            if (member == null)
            {
                throw new ArgumentNullException(nameof(member));
            }

            var mn   = _dialectSettings.GetEscapeName(member);
            var rule = type == OrderbyType.Ascending ? "ASC" : "DESC";

            _tuples?.Add(new KeyValuePair <string, string>(mn, rule));

            return(this);
        }
Esempio n. 2
0
 public OrderbyClauseResult ConstructOrderbyClause <TKey, TEntity>(Expression <Func <TEntity, object> > member, OrderbyType orderbyType) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey>
 {
     return((OrderbyClauseResult)$"{_dialectSettings.GetEscapeName(member)} {(orderbyType == OrderbyType.Ascending ? "ASC" : "DESC")}");
 }
Esempio n. 3
0
        public ActionResult QuestionesList(int page = 0, int take = 20, bool?isright = null, OrderbyType type = OrderbyType.Id)
        {
            var questions = _questionDbService.GetAllQuestiones(orderby: type, isright: isright);

            return(PartialView(questions));
        }
        public IPagedList <Question> GetAllQuestiones(string title = "", int?userid = null, bool?isright = null, OrderbyType orderby = OrderbyType.Id, int pageIndex = 0, int pageSize = 2147483647)
        {
            //没有被删除的 没有结束的 合法的
            var query =
                _db.Questions.Where(n => !n.Deleted && !n.IsIllegal && !n.IsFinished && n.ExpireTime > DateTime.Now);

            if (!string.IsNullOrEmpty(title))
            {
                query = query.Where(n => n.Title.Contains(title));
            }
            if (userid != null)
            {
                query = query.Where(n => n.UserId == userid.Value);
            }
            if (isright != null)
            {
                query = query.Where(n => n.IsAnsweredRight == isright.Value);
            }
            query = query.Include(n => n.Commnets).Include(n => n.RewardUsers);
            switch (orderby)
            {
            case OrderbyType.Id:
                query = query.OrderByDescending(c => c.Id);
                break;

            case OrderbyType.Comments:
                query = query.OrderByDescending(c => c.CommentNum);
                break;

            case OrderbyType.Reward:
                query = query.OrderByDescending(c => c.Reward);
                break;

            default:
                query = query.OrderByDescending(c => c.Id);
                break;
            }

            return(new PagedList <Question>(query, pageIndex, pageSize));
        }