public IActionResult List([FromBody] QueryListBaseModel query) { var response = _dbContext.Hosts .OrderByDescending(x => x.Id) .GetPaged(query.PageNumber, query.PageSize, query.GetAll); return(Ok(response)); }
public async Task <IActionResult> SearchAsync([FromBody] QueryListBaseModel query, CancellationToken cancellationToken = default) { var response = await _elasticConnectionClient.Client.Value.SearchAsync <TvgMedia>(rq => rq .Size(query.PageSize) .From(query.Skip) .Sort(x => GetSortDescriptor(x, query.SortDict)) .Query(q => q.Match(m => m.Field(ff => ff.Name) .Query(query.SearchDict.LastOrDefault().Value))) , cancellationToken); if (!response.IsValid) { return(BadRequest(response.DebugInformation)); } //response.AssertElasticResponse(); return(new OkObjectResult(response.GetResultListModel <TvgMedia, TvgMediaModel>())); }
public async Task <IActionResult> ListAsync([FromBody] QueryListBaseModel query, [FromQuery] bool light = true, CancellationToken cancellationToken = default) { var user = await _dbContext.Users.FindAsync(new object[] { UserId }, cancellationToken); if (user == null) { _logger.LogError($"User {this.UserEmail} not founded"); return(BadRequest($"User {this.UserEmail} not found")); } var plCacheKey = $"{UserCachePlaylistKey}_{query.GetHashCode()}_{light}"; var playlists = await _memoryCache.GetOrCreateAsync(plCacheKey, async entry => { if (_memoryCache.TryGetValue(UserCachePlaylistKey, out List <string> list)) { list.Add(UserCachePlaylistKey); } else { list = new List <string> { plCacheKey }; } _memoryCache.Set(UserCachePlaylistKey, list); entry.SlidingExpiration = TimeSpan.FromHours(2); return(await Task.Run(() => { var response = _dbContext.Playlist .Where(x => x.UserId == user.Id) .OrderByDescending(x => x.Id) .Select(pl => light ? PlaylistModel.ToLightModel(pl, Url) : PlaylistModel.ToModel(pl, Url)) .GetPaged(query.PageNumber, query.PageSize); return response; })); }); return(new OkObjectResult(playlists)); }