コード例 #1
0
ファイル: DatabaseService.cs プロジェクト: Joe4422/QSelect
        public static async Task InitialiseAsync(string packagesPath, string sourcePortsPath)
        {
            if (packagesPath is null)
            {
                throw new ArgumentNullException(nameof(packagesPath));
            }
            if (sourcePortsPath is null)
            {
                throw new ArgumentNullException(nameof(sourcePortsPath));
            }

            if (Packages != null || SourcePorts != null)
            {
                throw new Exception("Attempted to re-initialise DatabaseService.");
            }

            Packages = new PackageDatabaseManager(new()
            {
                new InstalledPackageRepository(packagesPath),
                new BuiltInPackageRepository(),
                new QuaddictedPackageRepository()
            });
            await Packages.RefreshDatabaseAsync();

            SourcePorts = new SourcePortDatabaseManager(new()
            {
                new InstalledSourcePortRepository(sourcePortsPath),
                new BuiltInSourcePortRepository()
            });
            await SourcePorts.RefreshDatabaseAsync();

            Initialised?.Invoke();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Joe4422/QSelect
        public static void InitDatabases()
        {
            List <IRepository <Package> > packageProviders = new List <IRepository <Package> >()
            {
                new InstalledPackageRepository("Packages"),
                new BuiltInPackageRepository(),
                new QuaddictedPackageRepository()
            };

            pdm = new PackageDatabaseManager("packages.json", packageProviders);
            pdm.LoadDatabaseAsync().Wait();

            List <IRepository <SourcePort> > sourcePortProviders = new List <IRepository <SourcePort> >()
            {
                new InstalledSourcePortRepository("SourcePorts"),
                new BuiltInSourcePortRepository()
            };

            spdm = new SourcePortDatabaseManager("sourceports.json", sourcePortProviders);
            spdm.LoadDatabaseAsync().Wait();
        }