Esempio n. 1
0
        public override async Task DefaultAction(MessageEventArgs request)
        {
            var command = request.GetClearedTextMessage();
            var userId  = request.GetUserId();

            switch (command)
            {
            case GetCommands.Last: {
                var userService = GetUserService();
                var userData    = await userService.GetLast(userId);

                if (userData is null)
                {
                    context.Sender.Send("No data saved");
                }
                else
                {
                    context.Sender.Send(userData);
                }
                break;
            }

            case GetCommands.Keys: {
                break;
            }

            default:
                break;
            }
            await context.TransitionToAsync(typeof(MemberState), request.Message.From.Id);
        }
Esempio n. 2
0
        private async void BotOnMessageReceived(object sender, MessageEventArgs request)
        {
            logger.Trace($"Message received {request.Message.Text}");

            try {
                var context = await contextFactory.CreateContext(request);

                var userTextMessage = request.GetClearedTextMessage();
                var handler         = handlerFactory.CreateHandlerForCommand(userTextMessage);

                handler.Execute(context, request);
                logger.Trace($"Message processed  {request.Message.Text}");
                return;
            } catch (BotException botException) {
                OnError(request, botException);
            } catch (Exception exception) {
                var internalException = BotException.CreateInternalException(exception);
                OnError(request, internalException);
            }

            logger.Trace($"Message failed {request.Message.Text}");
        }