Exemplo n.º 1
0
        public int StartGame(int roomId, GameParameters parameters)
        {
            return(Operation(() =>
            {
                CheckIsUserAuthenticated();
                if (!serverManager.IsUserInRoom(LoggedUser.Id, roomId))
                {
                    throw new Exception("Can't start a game from a room you are not in");
                }

                var gameId = serverManager.StartGame(LoggedUser, roomId, parameters);
                var gameUsers = serverManager.GetGameUsers(gameId);

                foreach (var user in gameUsers)
                {
                    if (user.Id == LoggedUser.Id)
                    {
                        continue;
                    }
                    var callback = userCallbacks.First(pair => pair.Key == user.Id).Value;
                    callback.GameStarted(gameId);
                }

                return gameId;
            }));
        }