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; } ; }
public async Task ShowScoreboar() { await Clients.All.SendAsync("ReceiveScoreboar", scoreboardService.GetScoreboarFlat().OrderByDescending(o => o.Score).ToList()); }