public ActivityExecutionResult Execute(IExecuteContext context)
        {
            if (context.IsContinue)
            {
                return(ActivityExecutionResult.Complete);
            }
            var chat = Guid.Parse(context.Resolve(ChatId));
            var msgs = GetMessages().Select(msg =>
            {
                var m = new StorableOutgoingMessage();
                m.Restore(msg, null);
                m.Resolve(context);
                return(new SendMessageMessage(m)
                {
                    BotEngine = BotEngine,
                    BotKey = BotKey,
                    ChatId = chat
                } as Infrastructure.IMessage);
            }).ToList();

            if (Sync)
            {
                var book = context.SetBookmark();
                var rmsg = new ResumeBookmarkMessage(book, new DynamicObject());
                msgs.Add(rmsg);
                context.SendMessagesSequence(msgs.ToArray());
                return(ActivityExecutionResult.Idle);
            }
            else
            {
                context.SendMessagesSequence(msgs.ToArray());
                return(ActivityExecutionResult.Complete);
            }
        }
Пример #2
0
 protected override Task Handle(IHandleContext context, IncomeMessage message)
 {
     if (IsWaiting)
     {
         var msg = new ResumeBookmarkMessage(BookmarkId, DynamicObjectConverters.From(message));
         context.SendMessage(msg);
         IsComplete = true;
     }
     else
     {
         var m = new InitBotChatMessage(message.BotEngine, message.BotKey)
         {
             ChatId  = message.CorrelationId.Value,
             Message = message.Message
         };
         context.SendMessage(m);
         IsComplete = true;
     }
     return(Task.CompletedTask);
 }