/// <summary> /// Process incoming activity (called by outer program /// </summary> /// <param name="activity"></param> /// <returns></returns> protected async Task ProcessActivityInternal(IActivity activity, Func <IBotContext, Task> callback = null) { BotAssert.ActivityNotNull(activity); var context = new BotContext(this, activity); await RunPipeline(context, callback).ConfigureAwait(false); }
/// <summary> /// Create proactive context around conversation reference /// All middleware pipelines will be processed /// </summary> /// <param name="reference">reference to create context around</param> /// <param name="callback">callback where you can continue the conversation</param> /// <returns>task when completed</returns> public virtual async Task ContinueConversation(ConversationReference reference, Func <IBotContext, Task> callback) { var context = new BotContext(this, reference); await RunPipeline(context, callback).ConfigureAwait(false); }
public static async Task Send(this BotContext context) { await context.SendActivity(context, new List <IActivity>()).ConfigureAwait(false); }