public IEventActivatedDialog(string key, ConversationData oldConversationData, UserData oldUserProfile)
     : this(EventActivatedDialogsStateManager.GetRequestStatus(KeyAugmentationFunction(key)))
 {
     EventActivatedDialogsStateManager.AddRequestStatus(
         KeyAugmentationFunction(key),
         new DialogStateData(oldUserProfile, oldConversationData, null, null));
 }
        protected async Task RevertToNormalStateAsync(ITurnContext turnContext, CancellationToken cancellationToken)
        {
            var oldState = EventActivatedDialogsStateManager.GetRequestStatus(
                KeyAugmentationFunction(await KeySelectionFunction(turnContext, cancellationToken)));

            this.ConversationData = oldState.ConversationData;
            this.UserProfile      = oldState.UserProfile;
        }
 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));
 }
        public override async Task StartAsync(ITurnContext turnContext, CancellationToken cancellationToken)
        {
            EventActivatedDialogsStateManager.AddRequestStatus(
                KeyAugmentationFunction(await this.KeySelectionFunction(turnContext, cancellationToken)),
                new DialogStateData(
                    this.UserProfile,
                    this.ConversationData,
                    turnContext.Adapter,
                    turnContext.Activity.GetConversationReference()));
            var msg = turnContext.Activity.CreateReply();

            msg.Type = ActivityTypes.EndOfConversation;
            msg.AsEndOfConversationActivity().Code = EndOfConversationCodes.CompletedSuccessfully;

            await turnContext.SendActivityAsync(msg, cancellationToken);
        }