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);
}
}