public WorldDatabaseProvider(DatabaseResolver databaseResolver,
                                     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), databaseResolver.ResolveWorld()));
                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());
            }
        }
        public AuthDatabaseProvider(DatabaseResolver databaseResolver,
                                    NullAuthDatabaseProvider nullAuthDatabaseProvider,
                                    IAuthDatabaseSettingsProvider settingsProvider,
                                    IMessageBoxService messageBoxService
                                    ) : base(nullAuthDatabaseProvider)
        {
            if (settingsProvider.Settings.IsEmpty)
            {
                return;
            }

            try
            {
                using var db = new TrinityAuthDatabase();
                if (db.Connection.State != ConnectionState.Open)
                {
                    db.Connection.Open();
                    db.Connection.Close();
                }
                impl = databaseResolver.ResolveAuth();
            }
            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());
            }
        }
Ejemplo n.º 3
0
        private void btnTestConnect_Click(object sender, EventArgs e)
        {
            string            name             = txtConnectionName.Text.Trim();
            string            type             = cb_dbtype.SelectedItem.ToString();
            string            connectionstring = txtConnectionString.Text.Trim();
            ConnectionSetting setting          = new ConnectionSetting();

            setting.ConnectionString = connectionstring;
            setting.Name             = name;
            setting.Provider         = (DatabaseType)Enum.Parse(typeof(DatabaseType), type);
            if (DatabaseResolver.TestConnection(setting))
            {
                MessageBox.Show("测试连接成功");
            }
            else
            {
                MessageBox.Show("连接数据库失败");
            }
        }
Ejemplo n.º 4
0
        public static IAnalysisEngine BuildAnalysisEngine(List <IDatabaseAccessDetector> dbAccessDetectors, IDatabaseFinder databaseFinder)
        {
            var logOutput = new LogOutput();

            // single instance services
            var typeService           = new TypeService();
            var tripleStore           = new TripleStore(typeService);
            var assignmentGraphWalker = new AssignmentGraphWalker(tripleStore);
            var delegateIndexer       = new DelegateIndexer(assignmentGraphWalker);
            var methodIndexer         = new MethodIndexer(delegateIndexer);

            var databaseResolver = new DatabaseResolver(assignmentGraphWalker, new AnalysisLogger(), dbAccessDetectors, databaseFinder);

            return(new AnalysisEngine(
                       new AssignmentGraphIndexer(new InstructionParser(logOutput), tripleStore, logOutput),
                       assignmentGraphWalker, methodIndexer, delegateIndexer,
                       new CallTreeWalker(methodIndexer, databaseResolver, logOutput),
                       typeService, logOutput));
        }
Ejemplo n.º 5
0
        public void AddDatabaseSource(string workingDir)
        {
            if (String.IsNullOrEmpty(workingDir) ||
                !Directory.Exists(workingDir))
            {
                return;
            }

            DatabaseResolver resolver = new DatabaseResolver(workingDir);

            if (resolver.Exists)
            {
                if (_listResolvers == null)
                {
                    _listResolvers = new List <DatabaseResolver>();
                }

                _listResolvers.Add(resolver);
            }
        }
Ejemplo n.º 6
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            lb_tables.Items.Clear();
            ConnectionSettingCollection csc = new ConnectionSettingCollection();
            string            connName      = cb_dbConnectionName.SelectedItem.ToString();
            ConnectionSetting setting       = csc[connName];

            setting.ConnectionString = txtConnectionString.Text.Trim().TrimEnd(';');
            DataFactory    factory = DatabaseResolver.GetDataFactory(setting);
            DatabaseSchema db      = factory.GetDatabaseSchema();
            List <string>  tables  = new List <string>();

            foreach (var table in db.Tables)
            {
                tables.Add(table.Name);
                lb_tables.Items.Add(table.Name);
            }
            AutoCompleteStringCollection autoColl = new AutoCompleteStringCollection();

            autoColl.AddRange(tables.ToArray());
            txtSearchbox.AutoCompleteCustomSource = autoColl;
        }
Ejemplo n.º 7
0
        public override string this[string id]
        {
            get
            {
                if (String.IsNullOrEmpty(id))
                {
                    return(String.Empty);
                }
                if (_cachedMsdnUrls.ContainsKey(id))
                {
                    return(_cachedMsdnUrls[id]);
                }

                if (_databaseMsdnUrls != null &&
                    _databaseMsdnUrls.ContainsKey(id))
                {
                    string urlDatabase = _databaseMsdnUrls[id];
                    _cachedMsdnUrls[id] = urlDatabase;

                    return(urlDatabase);
                }

                if (_listResolvers != null && _listResolvers.Count != 0)
                {
                    string urlDatabase = null;
                    for (int i = 0; i < _listResolvers.Count; i++)
                    {
                        DatabaseResolver resolver = _listResolvers[i];

                        urlDatabase = resolver[id];
                        if (!String.IsNullOrEmpty(urlDatabase))
                        {
                            _cachedMsdnUrls[id] = urlDatabase;

                            break;
                        }
                    }

                    if (!String.IsNullOrEmpty(urlDatabase))
                    {
                        return(urlDatabase);
                    }
                }

                // It is not found, we try retrieving it from the MSDN...
                string url = base.GetUrl(id);
                if (!String.IsNullOrEmpty(url))
                {
                    // If found, we temporally cache it...
                    _cachedMsdnUrls[id] = url;

                    if (_isCached && _databaseMsdnUrls != null)
                    {
                        // If enabled, we permanently cache it...
                        _databaseMsdnUrls[id] = url;
                    }

                    return(url);
                }

                return(String.Empty);
            }
        }
Ejemplo n.º 8
0
 private T ResolveDependency <T>(Type clazz)
 {
     clazz = typeof(T);
     return(DatabaseResolver.resolveDependency(clazz));
 }
Ejemplo n.º 9
0
 public override KernelTransactions KernelTransactions()
 {
     return(DatabaseResolver.resolveDependency(typeof(KernelTransactions)));
 }