Rainy.Db.DbStorageFactory.GetDbStorage C# (CSharp) Method

GetDbStorage() public method

public GetDbStorage ( IUser user ) : DbStorage
user IUser
return DbStorage
        public DbStorage GetDbStorage(IUser user)
        {
            DBUser db_user;
            using (var db = connFactory.OpenDbConnection ()) {
                db_user = db.First<DBUser> (u => u.Username == user.Username);
                if (db_user == null)
                    throw new ArgumentException (user.Username);
            }
            if (useEncryption) {
                if (string.IsNullOrEmpty (user.EncryptionMasterKey)) {
                    throw new ArgumentException ("MasterKey is required", "EncryptionMasterKey");
                }
                var master_key = user.EncryptionMasterKey;
                return (DbStorage)new DbEncryptedStorage (connFactory, db_user, master_key, useHistory);
            } else {
                return new DbStorage (connFactory, db_user.Username, db_user.Manifest, useHistory);
            }
        }

Usage Example

Esempio n. 1
0
        public DatabaseNoteRepository(IDbConnectionFactory factory, DbStorageFactory storageFactory, IUser user)
            : base(factory)
        {
            this.storage = storageFactory.GetDbStorage (user);
            engine = new Engine (storage);

            using (var db = connFactory.OpenDbConnection ()) {
                this.dbUser = db.Select<DBUser> (u => u.Username == user.Username)[0];
            }

            if (dbUser.Manifest == null || string.IsNullOrEmpty (dbUser.Manifest.ServerId)) {
                // the user may not yet have synced
                dbUser.Manifest.ServerId = Guid.NewGuid ().ToString ();
            }
        }