Exemple #1
0
        private async Task <DialogTurnResult> FinalStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var _DialogInfo = await _dialogInfoStateProperty.GetAsync(stepContext.Context);

            var dialogsMUI = DecisionMaker.GetDialogsMui(_DialogInfo.Language);

            if (stepContext.Context.Activity.Text == dialogsMUI.EmailDictionary["back"])
            {
                return(await stepContext.ReplaceDialogAsync(nameof(FinishDialog), cancellationToken : cancellationToken));
            }

            var dialogId = _DialogInfo.DialogId;
            var message  = _db.GetUserConversation(dialogId);

            if (!_DialogInfo.IsNotification)
            {
                await EmailSender.SendEmailAsync(userEmail, "StuddyBot", message);

                _DialogInfo.IsNotification = false;
            }

            //using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew,
            //    new TransactionOptions() { IsolationLevel = IsolationLevel.ReadCommitted }))
            {
                _db.EditUserEmail(_DialogInfo, userEmail);
                _db.SaveChanges();
            }


            await _dialogInfoStateProperty.SetAsync(stepContext.Context, _DialogInfo);

            return(await stepContext.ReplaceDialogAsync(nameof(FinishDialog),
                                                        cancellationToken : cancellationToken));
        }
Exemple #2
0
        private async Task <DialogTurnResult> FinalStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var _DialogInfo = await _dialogInfoStateProperty.GetAsync(stepContext.Context);

            var dialogsMUI = DecisionMaker.GetDialogsMui(_DialogInfo.Language);

            if (stepContext.Context.Activity.Text == dialogsMUI.EmailDictionary["back"])
            {
                return(await stepContext.ReplaceDialogAsync(nameof(EmailDialog), cancellationToken : cancellationToken));
            }

            _db.EditUserEmail(_DialogInfo, userEmail);
            return(await stepContext.ReplaceDialogAsync(nameof(EmailDialog),
                                                        cancellationToken : cancellationToken));
        }