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));
    }
コード例 #2
0
        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));
    }