public async Task <ICollection <CatSummary> > ExecuteAsync(GetCatSummariesByMemberLikedQuery query, IExecutionContext executionContext) { var userCatIds = await _dbContext .CatLikes .AsNoTracking() .Where(c => c.UserId == query.UserId) .OrderByDescending(c => c.CreateDate) .Select(c => c.CatCustomEntityId) .ToListAsync(); // GetByIdRange queries return a dictionary to make lookups easier, so we // have an extra step to do if we want to set the ordering to match the // original id collection. var catCustomEntities = await _contentRepository .CustomEntities() .GetByIdRange(userCatIds) .AsRenderSummaries() .FilterAndOrderByKeys(userCatIds) .ExecuteAsync(); var allMainImages = await GetMainImages(catCustomEntities); var allLikeCounts = await GetLikeCounts(catCustomEntities); return(MapCats(catCustomEntities, allMainImages, allLikeCounts)); }
public async Task <JsonResult> GetLikedCats() { // Here we get the userId of the currently logged in member. We could have // done this in the query handler, but instead we've chosen to keep the query // flexible so it can be re-used in a more generic fashion var userContext = await _userContextService.GetCurrentContextAsync(); var query = new GetCatSummariesByMemberLikedQuery(userContext.UserId.Value); var results = await _domainRepository.ExecuteQueryAsync(query); return(_apiResponseHelper.SimpleQueryResponse(results)); }
public async Task <JsonResult> GetLikedCats() { // Here we get the userId of the currently signed in member. We could have // done this in the query handler, but instead we've chosen to keep the query // flexible so it can be re-used in a more generic fashion var userContext = await _contentRepository .Users() .Current() .Get() .AsUserContext() .ExecuteAsync(); var query = new GetCatSummariesByMemberLikedQuery(userContext.UserId.Value); return(await _apiResponseHelper.RunQueryAsync(query)); }