public override async Task <DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null, CancellationToken cancellationToken = default(CancellationToken)) { if (this.Disabled != null && this.Disabled.GetValue(dc.State) == true) { return(await dc.EndDialogAsync(cancellationToken : cancellationToken).ConfigureAwait(false)); } CloudTable table = GetCloudTable(dc); var partitionKey = PartitionKey.GetValue(dc); var rowKey = RowKey.GetValue(dc); TableResult results = await table.ExecuteAsync(TableOperation.Retrieve(partitionKey, rowKey)).ConfigureAwait(false); var result = EntityToJObject((DynamicTableEntity)results.Result); if (this.ResultProperty != null) { dc.State.SetValue(this.ResultProperty.GetValue(dc.State), result); } return(await dc.EndDialogAsync(result : result, cancellationToken : cancellationToken).ConfigureAwait(false)); }