Esempio n. 1
0
        public ResultMessage ResetPassword(Employee employee, string password)
        {
            #region Инициализация

            IInstantSmsService service = InstantSmsServiceSetting.GetInstantSmsService();
            if (service == null)
            {
                return(new ResultMessage {
                    ErrorDescription = "Сервис отправки Sms не работает, обратитесь в РПО."
                });
            }

            #endregion

            #region МеняемПароль

            string login = employee.User.Login;
            mySQLUserRepository.ChangePassword(login, password);

            #endregion

            #region ОтправляемSMS

            string phone           = CreatePhoneAndLogin(employee);
            string messageText     = $"Логин: {login}\nПароль: {password}";
            var    smsNotification = new InstantSmsMessage
            {
                MessageText = messageText,
                MobilePhone = phone,
                ExpiredTime = DateTime.Now.AddMinutes(10)
            };
            return(service.SendSms(smsNotification));

            #endregion
        }
Esempio n. 2
0
        private bool SendPasswordByPhone(Employee employee, string password)
        {
            SmsSender sender = new SmsSender(new BaseParametersProvider(), InstantSmsServiceSetting.GetInstantSmsService());

            #region ФормированиеТелефона

            string stringPhoneNumber = employee.GetPhoneForSmsNotification();
            if (stringPhoneNumber == null)
            {
                MessageDialogHelper.RunErrorDialog("Не найден подходящий телефон для отправки Sms", "Ошибка при отправке Sms");
                return(false);
            }
            string phoneNumber = $"+7{stringPhoneNumber}";

            #endregion

            var result = sender.SendPassword(phoneNumber, employee.LoginForNewUser, password);

            if (result.MessageStatus == SmsMessageStatus.Ok)
            {
                MessageDialogHelper.RunInfoDialog("Sms с паролем отправлена успешно");
                return(true);
            }
            else
            {
                MessageDialogHelper.RunErrorDialog(result.ErrorDescription, "Ошибка при отправке Sms");
                return(false);
            }
        }
Esempio n. 3
0
        private static void StartMainWindow(
            string loginDialogName,
            IApplicationConfigurator applicationConfigurator,
            IParametersProvider parametersProvider)
        {
            //Настрока удаления
            Configure.ConfigureDeletion();
            PerformanceHelper.AddTimePoint(logger, "Закончена настройка удаления");

            //Настройка сервисов
            if (parametersProvider.ContainsParameter("instant_sms_enabled_database") && parametersProvider.ContainsParameter("sms_service_address"))
            {
                if (parametersProvider.GetParameterValue("instant_sms_enabled_database") == loginDialogName)
                {
                    InstantSmsServiceSetting.Init(parametersProvider.GetParameterValue("sms_service_address"));
                }
            }

            if (parametersProvider.ContainsParameter("sms_payment_send_enabled_database") && parametersProvider.ContainsParameter("sms_payment_send_service_address"))
            {
                if (parametersProvider.GetParameterValue("sms_payment_send_enabled_database") == loginDialogName)
                {
                    SmsPaymentServiceSetting.Init(parametersProvider.GetParameterValue("sms_payment_send_service_address"));
                }
            }
            DriverApiParametersProvider.InitializeNotifications(parametersProvider, loginDialogName);

            CreateTempDir();

            //Запускаем программу
            MainWin                = new MainWindow(passwordValidator, applicationConfigurator);
            MainWin.Title         += $" (БД: {loginDialogName})";
            QSMain.ErrorDlgParrent = MainWin;
            MainWin.Show();
        }
        public EmployeesJournalViewModel(
            EmployeeFilterViewModel filterViewModel,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices
            ) : base(
                filterViewModel,
                unitOfWorkFactory,
                commonServices
                )
        {
            this.TabName = "Журнал сотрудников";
            var instantSmsService = InstantSmsServiceSetting.GetInstantSmsService();

            this.authorizationService = new AuthorizationService(
                new PasswordGenerator(),
                new MySQLUserRepository(
                    new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()),
                    new GtkInteractiveService()));

            UpdateOnChanges(typeof(Employee));
        }
Esempio n. 5
0
        private static void StartMainWindow(string loginDialogName)
        {
            //Настрока удаления
            Configure.ConfigureDeletion();
            PerformanceHelper.AddTimePoint(logger, "Закончена настройка удаления");
            //Настройка сервисов
            if (ParametersProvider.Instance.ContainsParameter("email_send_enabled_database") && ParametersProvider.Instance.ContainsParameter("email_service_address"))
            {
                if (ParametersProvider.Instance.GetParameterValue("email_send_enabled_database") == loginDialogName)
                {
                    EmailServiceSetting.Init(ParametersProvider.Instance.GetParameterValue("email_service_address"));
                }
            }
            if (ParametersProvider.Instance.ContainsParameter("instant_sms_enabled_database") && ParametersProvider.Instance.ContainsParameter("sms_service_address"))
            {
                if (ParametersProvider.Instance.GetParameterValue("instant_sms_enabled_database") == loginDialogName)
                {
                    InstantSmsServiceSetting.Init(ParametersProvider.Instance.GetParameterValue("sms_service_address"));
                }
            }

            if (ParametersProvider.Instance.ContainsParameter("sms_payment_send_enabled_database") && ParametersProvider.Instance.ContainsParameter("sms_payment_send_service_address"))
            {
                if (ParametersProvider.Instance.GetParameterValue("sms_payment_send_enabled_database") == loginDialogName)
                {
                    SmsPaymentServiceSetting.Init(ParametersProvider.Instance.GetParameterValue("sms_payment_send_service_address"));
                }
            }

            CreateTempDir();

            //Запускаем программу
            MainWin                = new MainWindow();
            MainWin.Title         += $" (БД: {loginDialogName})";
            QSMain.ErrorDlgParrent = MainWin;
            MainWin.Show();
        }
        private void OnSendFastPaymentUrlBySmsClicked(object btn, EventArgs args)
        {
            if (_order.Id == 0)
            {
                _interactiveService.ShowMessage(ImportanceLevel.Error, "Перед отправкой QR необходимо сохранить заказ",
                                                "Не удалось отправить QR по SMS");
                return;
            }
            if (string.IsNullOrWhiteSpace(validatedPhoneEntry.Text))
            {
                _interactiveService.ShowMessage(ImportanceLevel.Error, "Вы забыли выбрать номер.", "Не удалось отправить QR по SMS");
                return;
            }

            if (!InstantSmsServiceSetting.SendingAllowed)
            {
                return;
            }

            var lastProccessingPayment = _fastPaymentRepository.GetProcessingPaymentForOrder(InfoProvider.UoW, _order.Id);

            if (lastProccessingPayment != null)
            {
                if (!_interactiveService.Question(
                        "Будет отменена текущая действующая сессия оплаты и сформирована новая ссылка на оплату. Продолжить?",
                        "Вы уверены что хотите отправить новую ссылку на оплату по SMS?"))
                {
                    return;
                }
            }

            btnSendFastPaymentPayByQrUrlBySms.Sensitive = btnSendFastPaymentPayByCardUrlBySms.Sensitive = ySendSmsButton.Sensitive = false;
            GLib.Timeout.Add(10000, () =>
            {
                if (!_isPaidOrder)
                {
                    btnSendFastPaymentPayByQrUrlBySms.Sensitive   = true;
                    btnSendFastPaymentPayByCardUrlBySms.Sensitive = _canSendSmsForPayFromSbpByCard;
                    ySendSmsButton.Sensitive = _canSendSmsForPayFromYookassa;
                }

                return(false);
            });

            var isQr       = (btn as yButton)?.Name == nameof(btnSendFastPaymentPayByQrUrlBySms);
            var smsSender  = new SmsSender(_fastPaymentParametersProvider, InstantSmsServiceSetting.GetInstantSmsService());
            var resultTask = smsSender.SendFastPaymentUrlAsync(_order, validatedPhoneEntry.Text, isQr);

            resultTask.Wait();
            var result = resultTask.Result;

            switch (result.MessageStatus)
            {
            case SmsMessageStatus.Ok:
                _interactiveService.ShowMessage(ImportanceLevel.Info, "SMS отправлена успешно");
                break;

            case SmsMessageStatus.Error:
                if (result.IsPaidStatus)
                {
                    _isPaidOrder             = true;
                    ySendSmsButton.Sensitive = false;
                }
                _interactiveService.ShowMessage(ImportanceLevel.Error, result.ErrorDescription, "Не удалось отправить SMS");
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }