예제 #1
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();
        }
예제 #2
0
 public MysqlChangePasswordModelExtended(
     IApplicationConfigurator applicationConfigurator,
     MySqlConnection connection,
     IMySqlPasswordRepository mySqlPasswordRepository)
     : base(connection, mySqlPasswordRepository)
 {
     this.applicationConfigurator = applicationConfigurator ?? throw new ArgumentNullException(nameof(applicationConfigurator));
 }
예제 #3
0
        /// <summary>
        /// Проверяет, необходима ли смена пароля для текущего пользователя, и, если необходима, открывает диалог смены пароля
        /// </summary>
        /// <returns>
        /// <para><b>True</b> - Если смена пароля не нужна или пароль был успешно изменён</para>
        /// <b>False</b> - Если смена была затребована смена пароля, но пароль не был изменён
        /// </returns>
        /// <exception cref="InvalidOperationException">Если текущий пользователь null</exception>
        private static bool ChangePassword(IApplicationConfigurator applicationConfigurator)
        {
            ResponseType         result;
            int                  currentUserId;
            IChangePasswordModel changePasswordModel;

            using (var uow = UnitOfWorkFactory.CreateWithoutRoot()) {
                var userRepository = new UserRepository();
                var currentUser    = userRepository.GetCurrentUser(uow);
                if (currentUser is null)
                {
                    throw new InvalidOperationException("CurrentUser is null");
                }
                if (!currentUser.NeedPasswordChange)
                {
                    return(true);
                }
                currentUserId = currentUser.Id;

                if (!(Connection.ConnectionDB is MySqlConnection mySqlConnection))
                {
                    throw new InvalidOperationException($"Текущее подключение не является {nameof(MySqlConnection)}");
                }

                var mySqlPasswordRepository = new MySqlPasswordRepository();
                changePasswordModel = new MysqlChangePasswordModelExtended(applicationConfigurator, mySqlConnection, mySqlPasswordRepository);
                var changePasswordViewModel = new ChangePasswordViewModel(
                    changePasswordModel,
                    passwordValidator,
                    null
                    );
                var changePasswordView = new ChangePasswordView(changePasswordViewModel)
                {
                    Title = "Требуется сменить пароль"
                };
                changePasswordView.ShowAll();
                result = (ResponseType)changePasswordView.Run();
                changePasswordView.Destroy();
            }

            if (result == ResponseType.Ok && changePasswordModel.PasswordWasChanged)
            {
                using (var uow = UnitOfWorkFactory.CreateWithoutRoot()) {
                    var user = uow.GetById <User>(currentUserId);
                    user.NeedPasswordChange = false;
                    uow.Save(user);
                    uow.Commit();
                    return(true);
                }
            }

            QSSaaS.Session.StopSessionRefresh();
            ClearTempDir();
            return(false);
        }
예제 #4
0
        /// <summary>
        /// Gets the migrator.
        /// </summary>
        /// <param name="assembly">The assembly.</param>
        /// <returns></returns>
        private static ECM7.Migrator.Migrator GetMigrator(Assembly assembly)
        {
            IApplicationConfigurator applicationConfigurator = ServiceLocator.Current.GetInstance <IApplicationConfigurator>();

            ECM7.Migrator.Migrator migrator = null;
            if (applicationConfigurator != null && applicationConfigurator.DatabaseConfiguration != null)
            {
                migrator = new ECM7.Migrator.Migrator(MigratorUtility.GetDialect(applicationConfigurator.DatabaseConfiguration.Platform), applicationConfigurator.DatabaseConfiguration.GetConnectionString(), assembly);
            }
            return(migrator);
        }
예제 #5
0
        public ReportDataModel(IApplicationConfigurator applicationConfigurator, PrinterConfigurationDataBase dataBase)
        {
            if (applicationConfigurator == null)
            {
                throw new ArgumentNullException(nameof(applicationConfigurator));
            }
            if (dataBase == null)
            {
                throw new ArgumentNullException(nameof(dataBase));
            }

            ApplicationConfigurator = applicationConfigurator;
            DataBase = dataBase;
        }
예제 #6
0
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            List <IApplicationConfigurator> configurators = new List <IApplicationConfigurator>();

            foreach (Type type in AssemblyScanner.GetAllTypesOfInterface <IApplicationConfigurator>())
            {
                IApplicationConfigurator configurator = (IApplicationConfigurator)Activator.CreateInstance(type);
                configurators.Add(configurator);
            }

            foreach (IApplicationConfigurator configurator in configurators.OrderBy(c => c.Order))
            {
                configurator.Configure(app, env, SillycoreAppBuilder.Instance.Configuration, app.ApplicationServices);
            }
        }
예제 #7
0
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            var forwardOptions = new ForwardedHeadersOptions
            {
                ForwardedHeaders      = ForwardedHeaders.All,
                RequireHeaderSymmetry = false
            };

            forwardOptions.KnownNetworks.Clear();
            forwardOptions.KnownProxies.Clear();

            app.UseForwardedHeaders(forwardOptions);

            List <IApplicationConfigurator> configurators = new List <IApplicationConfigurator>();

            foreach (Type type in AssemblyScanner.GetAllTypesOfInterface <IApplicationConfigurator>())
            {
                IApplicationConfigurator configurator = (IApplicationConfigurator)Activator.CreateInstance(type);
                configurators.Add(configurator);
            }

            foreach (IApplicationConfigurator configurator in configurators.OrderBy(c => c.Order))
            {
                configurator.Configure(app, env, SillycoreAppBuilder.Instance.Configuration, app.ApplicationServices);
            }

            app.UseMetricsAllMiddleware();
            app.UseMvc(r =>
            {
                if (SillycoreAppBuilder.Instance.DataStore.Get <bool>(Constants.RedirectRootToSwagger))
                {
                    r.MapRoute(name: "Default",
                               template: "",
                               defaults: new { controller = "Help", action = "Index" });
                }
                else
                {
                    r.MapRoute(name: "Default",
                               template: "",
                               defaults: new { controller = "Home", action = "Index" });
                }
            });
        }
예제 #8
0
 /// <summary>
 /// Configures the Apworks framework by using a default identity generator.
 /// </summary>
 /// <param name="configurator">The <see cref="IApplicationConfigurator"/> instance to be extended.</param>
 /// <returns>The <see cref="IIdentityGeneratorConfigurator"/> instance.</returns>
 public static IIdentityGeneratorConfigurator WithDefaultIdentityGenerator(this IApplicationConfigurator configurator)
 {
     return(WithIdentityGenerator <SequentialIdentityGenerator>(configurator));
 }
예제 #9
0
 /// <summary>
 /// Configures the Apworks framework by using the specified identity generator.
 /// </summary>
 /// <typeparam name="TIdentityGenerator">The type of the identity generator to be used by the framework.</typeparam>
 /// <param name="configurator">The <see cref="IApplicationConfigurator"/> instance to be extended.</param>
 /// <returns>The <see cref="IIdentityGeneratorConfigurator"/> instance.</returns>
 public static IIdentityGeneratorConfigurator WithIdentityGenerator <TIdentityGenerator>(this IApplicationConfigurator configurator)
     where TIdentityGenerator : IIdentityGenerator
 {
     return(new IdentityGeneratorConfigurator(configurator, typeof(TIdentityGenerator)));
 }