private async Task HandleProActiveDialogActivationsAsync(ITurnContext turnContext, CancellationToken cancellationToken)
        {
            var eventValue = ConversationUtils.GetEventValue(turnContext);

            if (eventValue != null && eventValue is DialogActivationEventValue)
            {
                DialogActivationEventValue proActiveDialogActivationEventValue = eventValue as DialogActivationEventValue;
                if (proActiveDialogActivationEventValue.DialogName == GettingUserFeedBackDialog.DialogName)
                {
                    var oldUserProfile = await conversationStateDataAccessor.GetUserData(turnContext);

                    var oldConversationData = await conversationStateDataAccessor.GetConversationData(turnContext);

                    IEventActivatedDialog dialog =
                        new GettingUserFeedBackDialog(
                            proActiveDialogActivationEventValue.StateKey,
                            oldConversationData,
                            oldUserProfile);

                    await dialog.ProActiveMessageToUseAsync(turnContext, cancellationToken);

                    await conversationStateDataAccessor.UpdateUserData(turnContext, dialog.UserProfile);

                    await conversationStateDataAccessor.UpdateConversationData(turnContext, dialog.ConversationData);
                }
            }
        }
 public async Task RequestDeliveredAsync([FromBody] BookingRequest request)
 {
     var da = EventActivatedDialogsStateManager.GetRequestStatus(GettingUserFeedBackDialog.KeyAugmentationFunction(request.Id));
     await da.BotAdapter.ContinueConversationAsync(
         da.ConversationData.BotId,
         da.ConversationReference,
         new GettingUserFeedBackDialog(da.ConversationData, da.UserProfile).ProActiveMessageToUseAsync,
         default(CancellationToken));
 }