Example #1
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (DataSettingsManager.DatabaseIsInstalled)
            {
                return;
            }
            if (!Enum.TryParse(_installationConfiguration["DataProvider"], out DataProviderType dataProviderType))
            {
                throw new DataException("Wrong data provider type.");
            }

            var dataProvider     = DataProviderManager.GetDataProvider(dataProviderType);
            var connectionString = _installationConfiguration["ConnectionString"];

            if (connectionString.IsNullOrEmpty())
            {
                throw new DataException("Connection string is wrong.");
            }

            DataSettingsManager.SaveSettings(new DataSettings()
            {
                DataProvider     = dataProviderType,
                ConnectionString = connectionString
            }, _fileProvider);

            DataSettingsManager.LoadSettings(reloadSettings: true);
            if (!dataProvider.IsDatabaseExists())
            {
                dataProvider.CreateDatabase(_installationConfiguration["Collation"]);
                dataProvider.InitializeDatabase();
                _installationService = EngineContext.Current.Resolve <IInstallationService>();
                _installationService.InstallRequiredData();

                return;
            }
            //update schema
            dataProvider.InitializeDatabase();
        }