Example #1
0
        /// <summary>
        /// https://github.com/2881099/FreeSql/wiki/%e8%bf%94%e5%9b%9e%e6%9f%a5%e8%af%a2%e7%9a%84%e6%95%b0%e6%8d%ae   返回更为复杂的结构
        /// </summary>
        /// <param name="searchDto"></param>
        /// <returns></returns>
        public PagedResultDto <UserDto> GetUserList(UserSearchDto searchDto)
        {
            ISelect <LinUser> select = _userRepository.Select
                                       .Where(r => r.Admin == (int)UserAdmin.Common)
                                       .WhereIf(searchDto.GroupId != null, r => r.GroupId == searchDto.GroupId);

            List <UserDto> linUsers = select
                                      .OrderByDescending(r => r.Id)
                                      .From <LinGroup>((a, b) =>
                                                       a.LeftJoin(c => c.GroupId == b.Id)
                                                       )
                                      .Page(searchDto.Page + 1, searchDto.Count)
                                      .ToList((a, b) => new
            {
                user      = a,
                GroupName = b.Name
            }).Select(r =>
            {
                UserDto userDto   = _mapper.Map <UserDto>(r.user);
                userDto.GroupName = r.GroupName;
                return(userDto);
            }).ToList();

            long totalNums = select.Count();

            return(new PagedResultDto <UserDto>(linUsers, totalNums));
        }
Example #2
0
        public async Task <LogsModelData> LogsResult(int page, int limit, string value = "")
        {
            ISelect <Logs> skeyAll = _SqlLiteContext.Select <Logs>();
            var            count   = _SqlLiteContext.Select <Logs>().Count().ToInt();

            if (!string.IsNullOrEmpty(value))
            {
                skeyAll = skeyAll.Where(s => s.Level.Contains(value) || s.Message.Contains(value));
            }

            var skey = await skeyAll.OrderByDescending(s => s.TimestampUtc).Skip((page - 1) * limit).Take(limit).ToListAsync();

            //var skey = await _SqlLiteContext.Select<Logs>().ToListAsync();
            List <LogsModel> data = new List <LogsModel>();

            foreach (var item in skey)
            {
                data.Add(new LogsModel {
                    EventName = item.EventId, Level = item.Level, Message = item.Message, Time = item.TimestampUtc, Id = item.Id
                });
            }


            return(new LogsModelData {
                msg = "", count = count, code = 0, data = data
            });
        }
Example #3
0
        public PagedResultDto <Post> Get([FromQuery] SearchPostDto searchPostDto)
        {
            ISelect <Post> selectPost = _fsql
                                        .Select <Post>()
                                        .Where(r => r.BlogId == searchPostDto.BlogId);

            List <Post> posts = selectPost.OrderByDescending(r => r.ReplyTime)
                                .Page(searchPostDto.PageNumber, searchPostDto.PageSize)
                                .ToList();

            long total = selectPost.Count();

            return(new PagedResultDto <Post>(total, posts));
        }
Example #4
0
 protected virtual ISelect <TEntity> ApplySorting(ISelect <TEntity> query, TGetListInput input)
 {
     if (input is ISortedResultRequest sortInput)
     {
         if (!string.IsNullOrWhiteSpace(sortInput.Sorting))
         {
             return(query.OrderBy(sortInput.Sorting));
         }
     }
     if (input is ILimitedResultRequest)
     {
         return(query.OrderByDescending(e => e.Id));
     }
     return(query);
 }
Example #5
0
        /// <summary>
        /// Should apply sorting if needed.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <param name="input">The input.</param>
        protected virtual ISelect <TEntity> ApplySorting(ISelect <TEntity> query, TGetListInput input)
        {
            //Try to sort query if available
            if (input is ISortedResultRequest sortInput)
            {
                if (!sortInput.Sorting.IsNullOrWhiteSpace())
                {
                    return(query.OrderBy(sortInput.Sorting));
                }
            }

            //IQueryable.Task requires sorting, so we should sort if Take will be used.
            if (input is ILimitedResultRequest)
            {
                return(query.OrderByDescending(e => e.Id));
            }

            //No sorting
            return(query);
        }
Example #6
0
 /// <summary>
 /// 【linq to sql】专用扩展方法,不建议直接使用
 /// </summary>
 public static ISelect <T1> ThenByDescending <T1, TMember>(this ISelect <T1> that, Expression <Func <T1, TMember> > column) where T1 : class => that.OrderByDescending(column);