Ejemplo n.º 1
0
        public async Task SendMessage(string user, string message)
        {
            if (string.IsNullOrWhiteSpace(message) && string.IsNullOrWhiteSpace(user))
            {
                await Clients.All.SendAsync("ReceiveMessage", "anonimo", "dont be shy", true);

                return;
            }

            if (string.IsNullOrWhiteSpace(user))
            {
                user = "******";
            }

            var messageType = MessageType.Text;

            var supportedCommands = new List <string>()
            {
                BotCommand.DeleteVote.ToString(), BotCommand.ForceStore.ToString(), BotCommand.Vote.ToString()
            };

            foreach (var command in supportedCommands)
            {
                if (message.Contains(command))
                {
                    messageType = MessageType.BotCommand;
                    break;
                }
            }

            switch (messageType)
            {
            case MessageType.Text:
            {
                chatHistoryService.AddToHistory(message);
                // Send msg to chat
                await Clients.All.SendAsync("ReceiveMessage", user, message, true);

                break;
            }

            case MessageType.BotCommand:
            {
                chatHistoryService.AddToHistory(message);


                var messageParsed = ParseMessage(user, message, scoreboardService);

                // Send msg to chat
                await Clients.All.SendAsync("ReceiveMessage", user, messageParsed.Item2, messageParsed.Item1);

                // Update scoreboard
                var toShow = scoreboardService.GetScoreboarFlat().OrderByDescending(o => o.Score);
                await Clients.All.SendAsync("ReceiveScoreboar", toShow);

                break;
            }

            default:
                break;
            }
            ;
        }
Ejemplo n.º 2
0
 public async Task ShowScoreboar()
 {
     await Clients.All.SendAsync("ReceiveScoreboar", scoreboardService.GetScoreboarFlat().OrderByDescending(o => o.Score).ToList());
 }