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)); }