there are different ways to accomplish this depending on where you would like to do this from.
one way would be to simply call context.EndConversation("Conversation Ended");
from a dialog.
The other is a bit more complicated but it will accomplish the same thing here is an implementation you can tweak to suit your needs:
public static async Task AbortConversation(Activity message)
{
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message))
{
var token = new CancellationToken();
var botData = scope.Resolve<IBotData>();
await botData.LoadAsync(token);
var stack = scope.Resolve<IDialogStack>();
stack.Reset();
botData.ConversationData.Clear();
botData.PrivateConversationData.Clear();
await botData.FlushAsync(token);
var botToUser = scope.Resolve<IBotToUser>();
await botToUser.PostAsync(message.CreateReply("Conversation aborted."));
}
}