private async Task <DialogTurnResult> DeleteTasksStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { stepContext.Values["TaskToDelete"] = ((FoundChoice)stepContext.Result).Value; string taskToDelete = (string)stepContext.Values["TaskToDelete"]; bool deleteTask = await _cosmosDBClient.DeleteTaskItemAsync(taskToDelete, User.UserID); if (deleteTask) { await stepContext.Context.SendActivityAsync(MessageFactory.Text("Task '" + taskToDelete + "' successfully deleted."), cancellationToken); List <ToDoTask> toDoTasks = await _cosmosDBClient.QueryItemsAsync(User.UserID); if (toDoTasks.Count == 0) { await stepContext.Context.SendActivityAsync(MessageFactory.Text("No Tasks left. All your tasks are deleted."), cancellationToken); return(await stepContext.EndDialogAsync(null, cancellationToken)); } return(await stepContext.PromptAsync(nameof(ConfirmPrompt), new PromptOptions { Prompt = MessageFactory.Text("Would you like to Delete more tasks?") }, cancellationToken)); } else { await stepContext.Context.SendActivityAsync(MessageFactory.Text("Task '" + taskToDelete + "' could not be deleted. Either it has been already deleted or some error occurred."), cancellationToken); return(await stepContext.EndDialogAsync(null, cancellationToken)); } }