Example #1
0
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="index"></param>
        /// <param name="rows"></param>
        /// <param name="search"></param>
        /// <param name="state">列表状态</param>
        /// <returns></returns>
        public async Task <Resp> GetThemesAsync(int index, int rows, string search, Theme.ThemeStates state, Theme.OrderBy orderBy)
        {
            ThemesList.IGetThemeListable list = orderBy switch
            {
                Theme.OrderBy.CreateDate => new ThemesList.OrderByCreateDateDesc(),
                Theme.OrderBy.WeekHot => new ThemesList.OrderByWeekHotDesc(),
                _ => new ThemesList.OrderByCreateDateDesc()
            };
            Resp resp = await list.GetThemeListAsync(index, rows, search, state);

            return(resp);
        }
        public async Task <ActionResult> GetListAsync(int index, int rows, string search, string state)
        {
            if (string.IsNullOrWhiteSpace(search))
            {
                search = "";
            }

            Theme.ThemeStates s = Theme.ThemeStates.NotSelected;
            if (Enum.TryParse(typeof(Theme.ThemeStates), state, true, out object result))
            {
                s = (Theme.ThemeStates)result;
            }

            Hub hub = new Hub();

            Domain.Resp resp = await hub.GetThemesAsync(index, rows, search, s, Theme.OrderBy.CreateDate);

            return(Pack(resp));
        }
        /// <summary>
        /// 时间最新排序
        /// </summary>
        /// <param name="index"></param>
        /// <param name="rows"></param>
        /// <param name="search"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public async Task <Resp> GetThemeListAsync(int index, int rows, string search, Theme.ThemeStates state)
        {
            using var db = new MyForContext();

            Paginator pager = new Paginator
            {
                Index = index,
                Rows  = rows
            };

            if (string.IsNullOrWhiteSpace(search))
            {
                search = "";
            }

            Expression <Func <DB.Tables.Theme, bool> > whereSQL = t => t.Name.Contains(search) && t.Description.Contains(search);

            if (state != Theme.ThemeStates.NotSelected)
            {
                whereSQL = whereSQL.And(t => t.State == (int)state);
            }

            pager.TotalRows = await db.Themes.CountAsync(whereSQL);

            pager.List = await db.Themes.AsNoTracking()
                         .Where(whereSQL)
                         .Include(t => t.Master)
                         .OrderByDescending(t => t.CreateDate)
                         .Skip(pager.GetSkip())
                         .Take(pager.Rows)
                         .Select(t => new Results.ThemeItem
            {
                Id         = t.Id,
                Name       = t.Name,
                Master     = t.Master.AccountName,
                CreateDate = t.CreateDate.ToStandardString()
            })
                         .ToListAsync();

            return(Resp.Success(pager, ""));
        }