Exemplo n.º 1
0
        public EmployeeDlg(int id)
        {
            this.Build();
            logger.Info("Загрузка информации о сотруднике...");
            UoWGeneric          = UnitOfWorkFactory.CreateForRoot <Employee>(id);
            mySQLUserRepository = new MySQLUserRepository(new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()), new GtkInteractiveService());

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

            ConfigureDlg();
        }
Exemplo n.º 2
0
        public EmployeeDlg()
        {
            this.Build();
            UoWGeneric                = UnitOfWorkFactory.CreateWithNewRoot <Employee>();
            mySQLUserRepository       = new MySQLUserRepository(new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()), new GtkInteractiveService());
            this.authorizationService = new AuthorizationService(
                new PasswordGenerator(),
                new MySQLUserRepository(
                    new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()),
                    new GtkInteractiveService()),
                EmailServiceSetting.GetEmailService());


            TabName = "Новый сотрудник";
            ConfigureDlg();
        }
Exemplo n.º 3
0
        public EmployeeDlg(IUnitOfWorkGeneric <Employee> uow)
        {
            this.Build();
            UoWGeneric = uow;
            if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_change_trainee_to_driver"))
            {
                hiddenCategory.Add(EmployeeCategory.driver);
                hiddenCategory.Add(EmployeeCategory.forwarder);
            }
            mySQLUserRepository       = new MySQLUserRepository(new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()), new GtkInteractiveService());
            this.authorizationService = new AuthorizationService(
                new PasswordGenerator(),
                new MySQLUserRepository(
                    new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()),
                    new GtkInteractiveService()),
                EmailServiceSetting.GetEmailService());

            ConfigureDlg();
        }
Exemplo n.º 4
0
        private static void StartMainWindow(
            string loginDialogName,
            IApplicationConfigurator applicationConfigurator,
            IParametersProvider parametersProvider)
        {
            //Настрока удаления
            Configure.ConfigureDeletion();
            PerformanceHelper.AddTimePoint(logger, "Закончена настройка удаления");

            //Настройка сервисов
            if (parametersProvider.ContainsParameter("email_send_enabled_database") && parametersProvider.ContainsParameter("email_service_address"))
            {
                if (parametersProvider.GetParameterValue("email_send_enabled_database") == loginDialogName)
                {
                    EmailServiceSetting.Init(parametersProvider.GetParameterValue("email_service_address"));
                }
            }
            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"));
                }
            }

            CreateTempDir();

            //Запускаем программу
            MainWin                = new MainWindow(passwordValidator, applicationConfigurator);
            MainWin.Title         += $" (БД: {loginDialogName})";
            QSMain.ErrorDlgParrent = MainWin;
            MainWin.Show();
        }
Exemplo n.º 5
0
        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()),
                EmailServiceSetting.GetEmailService());

            UpdateOnChanges(typeof(Employee));
        }
Exemplo n.º 6
0
        public void ResendEmailWithErrorSendingStatus(DateTime date)
        {
            IEmailService service = EmailServiceSetting.GetEmailService();

            if (service == null)
            {
                return;
            }

            IList <StoredEmail> errorSendedEmails;

            using (var uowLocal = UnitOfWorkFactory.CreateWithoutRoot()) {
                StoredEmail unsendedEmailAlias        = null;
                StoredEmail alreadyResendedEmailAlias = null;

                var dateCriterion = Projections.SqlFunction(
                    new SQLFunctionTemplate(
                        NHibernateUtil.Date,
                        "Date(?1)"
                        ),
                    NHibernateUtil.Date,
                    Projections.Property <StoredEmail>(x => x.SendDate)
                    );
                ICriterion dateResctict   = Restrictions.Eq(dateCriterion, date.Date);
                ICriterion dateResctictGe = Restrictions.Ge(dateCriterion, date.Date);

                var resendedQuery = QueryOver.Of <StoredEmail>()
                                    .Where(Restrictions.EqProperty(Projections.Property <StoredEmail>(x => x.Order.Id), Projections.Property(() => unsendedEmailAlias.Order.Id)))
                                    .Where(x => x.State != StoredEmailStates.SendingError)
                                    .Where(dateResctictGe)
                                    .Select(Projections.Count(Projections.Id()));

                errorSendedEmails = uowLocal.Session.QueryOver <StoredEmail>(() => unsendedEmailAlias)
                                    .Where(x => x.State == StoredEmailStates.SendingError)
                                    .Where(dateResctict)
                                    .WithSubquery.WhereValue(0).Eq(resendedQuery)
                                    .List();

                foreach (var sendedEmail in errorSendedEmails)
                {
                    var billDocument = sendedEmail.Order.OrderDocuments.FirstOrDefault(y => y.Type == OrderDocumentType.Bill) as BillDocument;
                    if (billDocument == null)
                    {
                        continue;
                    }

                    billDocument.HideSignature = false;
                    ReportInfo ri = billDocument.GetReportInfo();

                    var   billTemplate = billDocument.GetEmailTemplate();
                    Email email        = new Email {
                        Title             = string.Format("{0} {1}", billTemplate.Title, billDocument.Title),
                        Text              = billTemplate.Text,
                        HtmlText          = billTemplate.TextHtml,
                        Recipient         = new EmailContact("", sendedEmail.RecipientAddress),
                        Sender            = new EmailContact("vodovoz-spb.ru", ParametersProvider.Instance.GetParameterValue("email_for_email_delivery")),
                        Order             = billDocument.Order.Id,
                        OrderDocumentType = OrderDocumentType.Bill
                    };
                    foreach (var item in billTemplate.Attachments)
                    {
                        email.AddInlinedAttachment(item.Key, item.Value.MIMEType, item.Value.FileName, item.Value.Base64Content);
                    }
                    using (MemoryStream stream = ReportExporter.ExportToMemoryStream(ri.GetReportUri(), ri.GetParametersString(), ri.ConnectionString, OutputPresentationType.PDF, true)) {
                        string billDate = billDocument.DocumentDate.HasValue ? "_" + billDocument.DocumentDate.Value.ToString("ddMMyyyy") : "";
                        email.AddAttachment($"Bill_{billDocument.Order.Id}{billDate}.pdf", stream);
                    }
                    email.AuthorId      = sendedEmail.Author.Id;
                    email.ManualSending = sendedEmail.ManualSending ?? false;

                    service.SendEmail(email);
                }
            }
        }
Exemplo n.º 7
0
        private void SendDocument()
        {
            var client = document.Order.Client;
            var rdlDoc = (document as IPrintableRDLDocument);

            if (rdlDoc == null)
            {
                MessageDialogHelper.RunErrorDialog("Невозможно распечатать данный тип документа");
                return;
            }

            if (document.Order.Id == 0)
            {
                if (!MessageDialogHelper.RunQuestionDialog("Для отправки необходимо сохранить заказ, сохранить сейчас?"))
                {
                    return;
                }
                if (!(MyOrmDialog as OrderDlg).Save())
                {
                    return;
                }
            }

            if (client == null)
            {
                MessageDialogHelper.RunErrorDialog("Должен быть выбран клиент в заказе");
                return;
            }

            if (!ParametersProvider.Instance.ContainsParameter("email_for_email_delivery"))
            {
                MessageDialogHelper.RunErrorDialog("В параметрах базы не определена почта для рассылки");
                return;
            }

            if (string.IsNullOrWhiteSpace(yvalidatedentryEmail.Text))
            {
                MessageDialogHelper.RunErrorDialog("Необходимо ввести адрес электронной почты");
                return;
            }

            Email email = CreateDocumentEmail("", "vodovoz-spb.ru", document);

            if (email == null)
            {
                MessageDialogHelper.RunErrorDialog("Для данного типа документа не реализовано формирование письма");
                return;
            }

            using (var uow = UnitOfWorkFactory.CreateWithoutRoot()) {
                var employee = EmployeeRepository.GetEmployeeForCurrentUser(uow);
                email.AuthorId      = employee != null ? employee.Id : 0;
                email.ManualSending = true;
            }

            IEmailService service = EmailServiceSetting.GetEmailService();

            if (service == null)
            {
                return;
            }
            var result = service.SendEmail(email);

            //Если произошла ошибка и письмо не отправлено
            string resultMessage = "";

            if (!result.Item1)
            {
                resultMessage = "Письмо не было отправлено! Причина:\n";
            }
            MessageDialogHelper.RunInfoDialog(resultMessage + result.Item2);

            UpdateEmails();
        }
 public IAuthorizationService CreateNewAuthorizationService() =>
 new AuthorizationService(
     new PasswordGenerator(),
     new MySQLUserRepository(
         new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()), new GtkInteractiveService()),
     EmailServiceSetting.GetEmailService());