in CSharp/BotBuilderLocation/Dialogs/FavoriteLocationRetrieverDialog.cs [58:91]
protected override async Task MessageReceivedInternalAsync(IDialogContext context, IAwaitable<IMessageActivity> result)
{
var messageText = (await result).Text.Trim();
FavoriteLocation value = null;
string command = null;
if (StringComparer.OrdinalIgnoreCase.Equals(messageText, this.ResourceManager.OtherComand))
{
this.SwitchToLocationRetriever(context);
}
else if (this.TryParseSelection(context, messageText, out value))
{
await this.ProcessRetrievedLocation(context, value.Location);
}
else if (this.TryParseCommandSelection(context, messageText, out value, out command) &&
(StringComparer.OrdinalIgnoreCase.Equals(command, this.ResourceManager.DeleteCommand)
|| StringComparer.OrdinalIgnoreCase.Equals(command, this.ResourceManager.EditCommand)))
{
if (StringComparer.OrdinalIgnoreCase.Equals(command, this.ResourceManager.DeleteCommand))
{
TryConfirmAndDelete(context, value);
}
else
{
var editDialog = this.locationDialogFactory.CreateDialog(BranchType.EditFavoriteLocation, value.Location, value.Name);
context.Call(editDialog, this.ResumeAfterChildDialogAsync);
}
}
else
{
await context.PostAsync(string.Format(this.ResourceManager.InvalidFavoriteLocationSelection, messageText));
context.Wait(this.MessageReceivedAsync);
}
}