private async Task <DialogTurnResult> ProcessChoiceStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { if (stepContext.Result.GetType() == typeof(string)) { int id = CardUtils.GetValueFromAction <int>((string)stepContext.Result); var cart = await PurchaseController.GetCartById(id); return(await stepContext.NextAsync(cart, cancellationToken)); } return(await stepContext.NextAsync(stepContext.Result, cancellationToken)); }