private Task <IResult> IsValidAsync(GetWishListGamesQuery query) { _validator.ValidateUserIds(query.CurrentUserId, query.UserId); return(_validator.ValidateAsync()); }
public async Task <IResult <IReadOnlyCollection <GameWithImageResponse> > > HandleAsync(GetWishListGamesQuery query) { var validationResult = await IsValidAsync(query); if (validationResult.HasFailed()) { return(validationResult.Map <IReadOnlyCollection <GameWithImageResponse> >()); } var userId = query.UserId ?? query.CurrentUserId; var user = await _dataContext.Users .Include(x => x.WishList) .FirstAsync(x => x.Id == userId); var userGames = user.WishList.Select(x => x.GameId); var games = await _dataContext.Games .Include(x => x.CoverGameImage) .Where(x => userGames.Contains(x.Id)) .ToListAsync(); return(games .Select(x => new GameWithImageResponse { Category = x.GameCategory, Id = x.Id, ImageBytes = x.CoverGameImage.Data.ToList(), Title = x.Name }) .ToList() .ToSuccessfulResult()); }