title: How to implement drop down list in waterfall model using microsoft bot framework
body: <p>I am trying to implement drop down in waterfall model using dialogue. First step is prompting user to enter name, then ask user to enter age and then city where user needs to travel. And user must select the city from drop down list and i want to forward the information to the next waterfall step.
  My code for selecting destination is below:</p>
  <pre><code>private async Task&lt;DialogTurnResult&gt; DestinationStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
          {
              var message = MessageFactory.Text(&quot;Enter your destination city&quot;);
              var bookingDetails = (BookingDetails)stepContext.Options;
              bookingDetails.age = (int)stepContext.Result;
              var pmtOptions = new PromptOptions();
              if (bookingDetails.Destination == null)
              {
                  var card = new AdaptiveCard();
                  card.Body = new List&lt;AdaptiveElement&gt;();
                  var choices = new List&lt;AdaptiveChoice&gt;()
               {
                   new AdaptiveChoice()
                   {
                       Title = &quot;Pune&quot;,
                       Value = &quot;Pune&quot;,
                   },
                   new AdaptiveChoice()
                   {
                       Title = &quot;Mumbai&quot;,
                       Value = &quot;Mumbai&quot;,
                   },
                   new AdaptiveChoice()
                   {
                       Title = &quot;Hyderabad&quot;,
                       Value = &quot;Hyderabad&quot;,
                   },
                   new AdaptiveChoice()
                   {
                       Title = &quot;Bengaluru&quot;,
                       Value = &quot;Bengaluru&quot;,
                   },
               };
                  var choiceSet = new AdaptiveChoiceSetInput()
                  {
                      IsMultiSelect = false,
                      Choices = choices,
                      Style = AdaptiveChoiceInputStyle.Compact,
                      Value = &quot;1&quot;,
                      Id = &quot;Destination city&quot;,
                  };
                  card.Body.Add(choiceSet);
  
                  message.Attachments.Add(new Attachment() { Content = card, ContentType = &quot;application/vnd.microsoft.card.adaptive&quot; });
                  var createTaskAndElement = new List&lt;AdaptiveElement&gt;
                  {
                      new AdaptiveColumnSet
                      {
                          Id=&quot;btnCreate&quot;,
                          Columns=new List&lt;AdaptiveColumn&gt;
                          {
                              new AdaptiveColumn
                              {
                                  Items=new List&lt;AdaptiveElement&gt;
                                  {
                                      new AdaptiveActionSet
                                      {
                                          Actions=new List&lt;AdaptiveAction&gt;
                                          {
                                              new AdaptiveSubmitAction
                                              {
                                                  Title=&quot;Select&quot;
                                              }
                                          }
                                      }
                                  }
                              }
                          }
                      }
                  };
                  card.Body.Add(new AdaptiveContainer
                  {
                      Id = &quot;Create_Task_Container&quot;,
                      Style = AdaptiveContainerStyle.Default,
                      Spacing = AdaptiveSpacing.Default,
                      Bleed = false,
                      IsVisible = false,
                      VerticalContentAlignment = AdaptiveVerticalContentAlignment.Top,
                      Items = createTaskAndElement
                  });
                  card.Actions.Add(new AdaptiveSubmitAction() { Title = &quot;Select&quot; });
                  return await stepContext.PromptAsync(DlgChoice, new PromptOptions { Prompt = message },cancellationToken);
              }
              return await stepContext.NextAsync(bookingDetails.Destination, cancellationToken);
          }
  </code></pre>
  <p>When i try to execute i am getting error as:
  Exception thrown: 'Newtonsoft.Json.JsonReaderException' in System.Private.CoreLib.dll
  'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.22\System.Diagnostics.StackTrace.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
  'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.22\System.Reflection.Metadata.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
  'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.22\System.IO.MemoryMappedFiles.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
  Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executed action method CoreBot4.Controllers.BotController.PostAsync (CoreBot4), returned result Microsoft.AspNetCore.Mvc.EmptyResult in 3158.1642ms.</p>
  <p>Please help me in solving the problem. Thanks in advance</p>