/// <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, "")); }