Пример #1
0
        protected async override Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            await base.OnMessageActivityAsync(turnContext, cancellationToken);

            var conversationStateAccessors = _conversationState.CreateProperty <PasswordResetConversationState>(nameof(PasswordResetConversationState));
            var conversationData           = await conversationStateAccessors.GetAsync(turnContext, () => new PasswordResetConversationState());

            var userStateAccessors = _userState.CreateProperty <PasswordResetRequest>(nameof(PasswordResetRequest));
            var userProfile        = await userStateAccessors.GetAsync(turnContext, () => new PasswordResetRequest());

            var inputText = turnContext.Activity.Text.Trim().ToLower();

            switch (conversationData.CurrentState)
            {
            case Enums.PwdResetConversationStates.Initial:
                conversationData.CurrentState = PwdResetConversationStates.AskUserName;
                await turnContext.SendActivityAsync("Şifrenizi resetlemek için kullanıcı adınızı öğrenebilir miyim?");

                break;

            case Enums.PwdResetConversationStates.AskUserName:
                if (UserNameValidator.Validate(inputText))
                {
                    userProfile.UserName          = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskEmail;
                    await turnContext.SendActivityAsync($"Teşekkürler {userProfile.UserName}, Şimdi mail adresini öğrenebilir miyim?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"İsmini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskEmail:
                if (EmailValidator.Validate(inputText))
                {
                    userProfile.Email             = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskApproval;
                    await turnContext.SendActivityAsync($"Bilgilerini aldım. Teşekkür ederim. Şimdi onayına ihtiyacım var.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"{userProfile.UserName} emailini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskApproval:
                if (ApprovalValidator.Validate(inputText))
                {
                    if (ApprovalValidator.IsApprooved(inputText))
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Completed;
                        await turnContext.SendActivityAsync($"Onayınızı aldım. En kısa zamanda şifreniz resetlenecektir.");
                    }
                    else
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Cancelled;
                        await turnContext.SendActivityAsync($"İşlem iptal edilmiştir.");
                    }

                    await turnContext.SendActivityAsync($"İyi çalışmalar.");
                }
                else
                {
                    await turnContext.SendActivityAsync($"sizi anlayamadım.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                break;

            case Enums.PwdResetConversationStates.Cancelled:
            case Enums.PwdResetConversationStates.Completed:
                await turnContext.SendActivityAsync("Yeni bir işlem yapmak için lütfen hangi işlemi yapmak istediğinizi söyleyiniz.");

                conversationData.CurrentState = PwdResetConversationStates.Initial;
                List <string> supportedActions = new List <string>();
                supportedActions.Add("Şifre Resetleme");
                await turnContext.SendActivityAsync(MessageFactory.SuggestedActions(supportedActions));

                break;

            default:
                break;
            }
        }
Пример #2
0
        protected async override Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            await base.OnMessageActivityAsync(turnContext, cancellationToken);

            var conversationStateAccessors = _conversationState.CreateProperty <PasswordResetConversationState>(nameof(PasswordResetConversationState));
            var conversationData           = await conversationStateAccessors.GetAsync(turnContext, () => new PasswordResetConversationState());

            var userStateAccessors = _userState.CreateProperty <PasswordResetRequest>(nameof(PasswordResetRequest));
            var userProfile        = await userStateAccessors.GetAsync(turnContext, () => new PasswordResetRequest());

            var inputText = turnContext.Activity.Text.Trim().ToLower();

            switch (conversationData.CurrentState)
            {
            case Enums.PwdResetConversationStates.Initial:
                conversationData.CurrentState = PwdResetConversationStates.AskUserName;
                await turnContext.SendActivityAsync("Şifrenizi resetlemek için kullanıcı adınızı öğrenebilir miyim?");

                break;

            case Enums.PwdResetConversationStates.AskUserName:
                if (UserNameValidator.Validate(inputText))
                {
                    userProfile.UserName          = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskEmail;
                    await turnContext.SendActivityAsync($"Teşekkürler {userProfile.UserName}, Şimdi mail adresini öğrenebilir miyim?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"İsmini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskEmail:
                if (EmailValidator.Validate(inputText))
                {
                    userProfile.Email             = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskApproval;
                    await turnContext.SendActivityAsync($"Bilgilerini aldım. Teşekkür ederim. Şimdi onayına ihtiyacım var.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"{userProfile.UserName} emailini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskApproval:
                if (ApprovalValidator.Validate(inputText))
                {
                    if (ApprovalValidator.IsApprooved(inputText))
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Completed;
                        //EXCEL BAŞLANGIÇ
                        Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
                        Excel.Workbook    xlWorkBook;
                        Excel.Worksheet   xlWorkSheet;
                        object            misValue = System.Reflection.Missing.Value;

                        xlWorkBook  = xlApp.Workbooks.Add(misValue);
                        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

                        xlWorkSheet.Cells[1, 1] = "Username";
                        xlWorkSheet.Cells[1, 2] = "Email";
                        xlWorkSheet.Cells[2, 1] = userProfile.UserName;
                        xlWorkSheet.Cells[2, 2] = userProfile.Email;

                        xlApp.DisplayAlerts = false;
                        xlWorkBook.SaveAs("C:\\Users\\BaranOzsarac\\Documents\\" + userProfile.UserName + ".xlsx", Excel.XlFileFormat.xlOpenXMLWorkbook, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                        xlWorkBook.Close(true, misValue, misValue);
                        xlApp.Quit();

                        Marshal.ReleaseComObject(xlWorkSheet);
                        Marshal.ReleaseComObject(xlWorkBook);
                        Marshal.ReleaseComObject(xlApp);
                        //EXCEL BİTİŞ
                        await turnContext.SendActivityAsync($"Onayınızı aldım. En kısa zamanda şifreniz resetlenecektir.");
                    }
                    else
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Cancelled;
                        await turnContext.SendActivityAsync($"İşlem iptal edilmiştir.");
                    }

                    await turnContext.SendActivityAsync($"İyi çalışmalar.");
                }
                else
                {
                    await turnContext.SendActivityAsync($"sizi anlayamadım.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                break;

            case Enums.PwdResetConversationStates.Cancelled:
            case Enums.PwdResetConversationStates.Completed:
                await turnContext.SendActivityAsync("Yeni bir işlem yapmak için lütfen hangi işlemi yapmak istediğinizi söyleyiniz.");

                conversationData.CurrentState = PwdResetConversationStates.Initial;
                List <string> supportedActions = new List <string>();
                supportedActions.Add("Şifre Resetleme");
                await turnContext.SendActivityAsync(MessageFactory.SuggestedActions(supportedActions));

                break;

            default:
                break;
            }
        }