Exemple #1
0
        public AuthDatabaseProvider(SkyFireMySqlDatabaseProvider skyfireDatabase,
                                    NullAuthDatabaseProvider nullAuthDatabaseProvider,
                                    IAuthDatabaseSettingsProvider settingsProvider,
                                    IMessageBoxService messageBoxService
                                    ) : base(nullAuthDatabaseProvider)
        {
            if (settingsProvider.Settings.IsEmpty)
            {
                return;
            }

            try
            {
                using var db = new SkyFireAuthDatabase();
                if (db.Connection.State != ConnectionState.Open)
                {
                    db.Connection.Open();
                    db.Connection.Close();
                }
                impl = skyfireDatabase;
            }
            catch (Exception e)
            {
                impl = nullAuthDatabaseProvider;
                messageBoxService.ShowDialog(new MessageBoxFactory <bool>().SetTitle("Database error")
                                             .SetIcon(MessageBoxIcon.Error)
                                             .SetMainInstruction("Couldn't connect to the auth database")
                                             .SetContent(e.Message)
                                             .WithOkButton(true)
                                             .Build());
            }
        }
Exemple #2
0
        public WorldDatabaseProvider(SkyFireMySqlDatabaseProvider skyfireDatabase,
                                     NullWorldDatabaseProvider nullWorldDatabaseProvider,
                                     IWorldDatabaseSettingsProvider settingsProvider,
                                     IMessageBoxService messageBoxService,
                                     ILoadingEventAggregator loadingEventAggregator,
                                     IEventAggregator eventAggregator,
                                     IContainerProvider containerProvider) : base(nullWorldDatabaseProvider)
        {
            if (settingsProvider.Settings.IsEmpty)
            {
                eventAggregator.GetEvent <AllModulesLoaded>().Subscribe(loadingEventAggregator.Publish <DatabaseLoadedEvent>, true);
                return;
            }

            try
            {
                var cachedDatabase = containerProvider.Resolve <CachedDatabaseProvider>((typeof(IAsyncDatabaseProvider), skyfireDatabase));
                cachedDatabase.TryConnect();
                impl = cachedDatabase;
            }
            catch (Exception e)
            {
                impl = nullWorldDatabaseProvider;
                messageBoxService.ShowDialog(new MessageBoxFactory <bool>().SetTitle("Database error")
                                             .SetIcon(MessageBoxIcon.Error)
                                             .SetMainInstruction("Couldn't connect to the database")
                                             .SetContent(e.Message)
                                             .WithOkButton(true)
                                             .Build());
            }
        }