#pragma warning disable 1998 private async Task ShowTaskOperationsAsync(IDialogContext context, QueryOperation operation) #pragma warning restore 1998 { // Get the task. var task = operation.GetContextObjectAs <PlanTask>(); // Create task operations. var operations = new List <QueryOperation>(); // Create in progress operation. if (task.PercentComplete == 0) { operations.Add(new QueryOperation { Text = "(In progress)", Type = OperationType.InProgress, Endpoint = operation.Endpoint, ContextObject = task }); } // Create complete operation. if (task.PercentComplete != 100) { operations.Add(new QueryOperation { Text = "(Complete)", Type = OperationType.Complete, Endpoint = operation.Endpoint, ContextObject = task }); } // Create delete operation. operations.Add(new QueryOperation { Text = "(Delete)", Type = OperationType.Delete, Endpoint = operation.Endpoint, ContextObject = task }); // Create up operation. operations.Add(new QueryOperation { Text = "(Up)", Type = OperationType.Up, Endpoint = operation.Endpoint }); // Create other operations. var me = context.ConversationData.Me(); operations.Add(new QueryOperation { Text = $"(Other {me} queries)", Type = OperationType.ShowOperations }); // Create start over operation. operations.Add(new QueryOperation { Text = "(Start over)", Type = OperationType.StartOver }); // Create prompt text. var promptText = $"Task \"{task.Title}\" is "; // Set completion status. switch (task.PercentComplete) { case 0: promptText += "not started"; break; case 100: promptText += "completed"; break; default: promptText += "in progress"; break; } promptText += ". What would you like to do next?"; // Allow user to select the operation. PromptDialog.Choice(context, OnTaskOperationsChoiceDialogResume, operations, promptText); }