title: How do I give a delayed response in Microsoft Bot Framework
body: <p>I am using Microsoft Bot Framework FormFlow to get a user to complete a form. Having completed it that Dialog ends and the method specified for the <code>ResumeWith</code> parameter (in this case <code>quoteComplete</code>) is executed:</p>
  
  <pre><code>var quoteForm = new FormDialog&lt;Quote&gt;(new Quote(), 
      quoteFormBuilder.BuildForm, FormOptions.PromptInStart);
  
  context.Call&lt;Quote&gt;(quoteForm, quoteComplete);
  </code></pre>
  
  <p>In <code>quoteComplete</code> I want the bot to tell the user that it is getting a quote and that it may takes a few seconds. An async call to perform the quote is then done and on it's return I want the bot to show another message with the value of the quote:</p>
  
  <pre><code>await context.PostAsync("I will now calculate your quote. I won't be long...");
  context.Wait(MessageReceived);
  
  //Simulate getting the quote
  Task.Delay(5000).ContinueWith(t =&gt;
  {
      context.PostAsync("Your quote is £133.54");
  });
  </code></pre>
  
  <p>I also tried following advice in the documentation for sending multiple replies by putting this in the <code>Delay().ContinueWith</code>:</p>
  
  <pre><code>var message = context.MakeMessage();
  message.Text = "Your quote is for £133.54";
  var connector = new ConnectorClient();
  connector.Messages.SendMessage(message);
  </code></pre>
  
  <p>However I get an <code>Access Denied</code> error for this.</p>