Esempio n. 1
0
 private async void OnChatMessage(object?sender, ChatMessageEventArgs chatMessageArgs)
 {
     try
     {
         await ProcessChatMessage(sender, chatMessageArgs);
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "{Time}: OnChatMessage - Error {Exception}", DateTime.UtcNow, ex.Message);
     }
 }
Esempio n. 2
0
 private async Task ProcessChatMessage(object?sender, ChatMessageEventArgs chatMessageArgs)
 {
     if (sender is IChatService chatService)
     {
         var command = _serviceProvider.GetServices <IBotCommand>().SingleOrDefault(x => $"/{x.Command}".Equals(chatMessageArgs.Command, StringComparison.InvariantCultureIgnoreCase));
         if (command != null)
         {
             await command.Execute(chatService,
                                   chatMessageArgs.ChatId,
                                   chatMessageArgs.UserId,
                                   chatMessageArgs.MessageId,
                                   chatMessageArgs.Text);
         }
         else
         {
             _logger.LogTrace("Unknown command was sent");
             await chatService.SendMessage(chatMessageArgs.ChatId, UnknownCommandMessage);
         }
     }
 }