Пример #1
0
        public YamsterArchiveDb(SQLiteMapper mapper,
                                EventHandler <SQLiteDataContextUpgradeEventArgs> beforeUpgradeHandler,
                                EventHandler afterUpgradeHandler)
            : base(mapper, beforeUpgradeHandler, afterUpgradeHandler)
        {
            // Validate the database state
            int archiveDbVersion = GetObjectVersion("Archive");

            if (archiveDbVersion != CurrentArchiveDbVersion)
            {
                if (archiveDbVersion == 0)
                {
                    Debug.WriteLine("Uninitialized database -- creating tables");
                }
                else if (archiveDbVersion == -1)
                {
                    Debug.WriteLine("ArchiveDb is inactive -- skipping initialization");
                    return;
                }
                else
                {
                    throw new UnsupportedDatabaseVersionException("Archive", archiveDbVersion, CurrentArchiveDbVersion);
                }

                CreateTables();
                InitDatabase(markInactive: false);
            }
        }
Пример #2
0
        public void Dispose()
        {
            if (this.disposed)
            {
                return;
            }
            this.disposed = true;

            this.sqliteMapper.Dispose();
            this.sqliteMapper = null;

            this.asyncRestCaller.Dispose();
            this.asyncRestCaller = null;
        }
Пример #3
0
        public void ConnectDatabase(EventHandler <SQLiteDataContextUpgradeEventArgs> beforeUpgradeHandler,
                                    EventHandler afterUpgradeHandler)
        {
            if (this.DatabaseConnected)
            {
                throw new InvalidOperationException("The database is already connected");
            }

            this.sqliteMapper = new SQLiteMapper(this.DatabaseFilePath, createIfMissing: true);
            this.sqliteMapper.Open();
            this.yamsterArchiveDb = new YamsterArchiveDb(sqliteMapper,
                                                         beforeUpgradeHandler, afterUpgradeHandler);
            this.yamsterCoreDb = new YamsterCoreDb(yamsterArchiveDb);
            this.yamsterCache  = new YamsterCache(this);

            this.messagePuller = new MessagePuller(this);
        }