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); } }
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); }