/// <summary> /// 分页查询壁纸 /// </summary> /// <param name="input"></param> /// <param name="factory"></param> /// <returns></returns> public async Task <ServiceResult <PagedList <WallpaperDto> > > QueryWallpapersAsync(QueryWallpapersInput input, Func <Task <ServiceResult <PagedList <WallpaperDto> > > > factory) { return(await Cache.GetOrAddAsync(KEY_QueryWallpapers.FormatWith(input.Page, input.Limit, input.Type, input.Keywords), factory, CacheStrategy.HALF_HOURS)); }
/// <summary> /// 分页查询壁纸 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <ServiceResult <PagedList <WallpaperDto> > > QueryWallpapersAsync(QueryWallpapersInput input) { return(await _wallpaperCacheService.QueryWallpapersAsync(input, async() => { var result = new ServiceResult <PagedList <WallpaperDto> >(); var query = _wallpaperRepository.WhereIf(input.Type > 0, x => x.Type == input.Type) .WhereIf(input.Keywords.IsNotNullOrEmpty(), x => x.Title.Contains(input.Keywords)) .OrderByDescending(x => x.CreateTime); var count = query.Count(); var wallpapers = query.PageByIndex(input.Page, input.Limit); var list = ObjectMapper.Map <IEnumerable <Domain.Wallpaper.Wallpaper>, List <WallpaperDto> >(wallpapers); result.IsSuccess(new PagedList <WallpaperDto>(count, list)); return await Task.FromResult(result); })); }
public async Task <ServiceResult <PagedList <WallpaperDto> > > QueryWallpapersAsync([FromQuery] QueryWallpapersInput input) { return(await _wallpaperService.QueryWallpapersAsync(input)); }