Exemplo n.º 1
0
        public IHttpActionResult GetGamesWithFilters(bool isPrivate, bool hasFriends, GameMode gameMode)
        {
            var friendIds = new FriendshipRepository(this.DbContext).GetFriends(this.WarsimUser.UserId).Select(x => x.Id);

            var games = this.GameManager.GameHosts.Values
                        .Where(x => x.Map.IsPrivate == isPrivate);

            if (gameMode != GameMode.All)
            {
                games = games.Where(x => x.Mode == gameMode);
            }

            if (hasFriends)
            {
                games = games.Where(x => x.Players.Values.Any(y => friendIds.Contains(y.UserId)));
            }

            return(this.Ok(games.Select(WarsimClientGame.Map)));
        }