Exemple #1
0
        /// <summary>
        /// Hnadle new user connected to game
        /// </summary>
        /// <param name="message"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task HandleNewUserInGame(Dictionary <string, object> message, HttpContext context)
        {
            var place      = Convert.ToInt32(message[BlackjackConstants.Message.PlaceNumber]);
            var name       = context.GetUserName();
            var id         = context.GetUserId();
            var curentUser = _blackjackGame.Users
                             .FirstOrDefault(entry => entry.Value?.Name == name);

            if (curentUser.Value == null)
            {
                var user = new BlackjackUser(name, id);
                if (_blackjackGame.GameStarted)
                {
                    _blackjackGame.UsersInQueue.Add(place, user);
                }
                else
                {
                    _blackjackGame.AddUser(place, user);
                }
                Websockets[GenerateKey(context)].BlackjackUser = user;
                Websockets[GenerateKey(context)].Place         = place;
            }
            else
            {
                Websockets[GenerateKey(context)].BlackjackUser = curentUser.Value;
                Websockets[GenerateKey(context)].Place         = curentUser.Key;
            }
            await SendGameInfoWithCurrentUser();
        }
        public Dictionary <string, object> BuildMessageWithWinner(BlackjackUser user, int place, BlackjackGameResult result)
        {
            var message = BuildGameStateMessageWithCurrentUser(user, place);

            message["winner"] = result;
            return(message);
        }
        public Dictionary <string, object> BuildGameStateMessageWithCurrentUser(BlackjackUser user, int place)
        {
            var messageToSend = Dictionary();

            messageToSend[BlackjackConstants.Message.MessageType] = BlackjackConstants.Message.GameState;
            messageToSend[BlackjackConstants.Message.GameState]   = BlackjackGame;
            if (user != null)
            {
                var currentUser = Dictionary();
                currentUser["carts"]         = user.Carts;
                currentUser["place"]         = place;
                currentUser["name"]          = user.Name;
                messageToSend["currentUser"] = currentUser;
            }
            return(messageToSend);
        }
Exemple #4
0
 public void AddUser(int place, BlackjackUser user)
 {
     Users[place] = user;
 }