diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-09 20:46:34 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-09 20:46:34 -0400 |
| commit | 6efd877017a1f25e23f1a5e49cc7ccff1512226d (patch) | |
| tree | 8edf3d5cb42ad2a929468fd74496592d07f66f39 /MediaBrowser.Server.Implementations/Persistence/SqliteUserRepository.cs | |
| parent | 9f0405b9a08ff1a1383c1d0d23fded460d340044 (diff) | |
Removed dependency from user repository
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence/SqliteUserRepository.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Persistence/SqliteUserRepository.cs | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteUserRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteUserRepository.cs index 09e34cf08..a29dc1a63 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteUserRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteUserRepository.cs @@ -6,8 +6,6 @@ using MediaBrowser.Model.Serialization; using System; using System.Collections.Generic; using System.Data; -using System.Data.SQLite; -using System.IO; using System.Threading; using System.Threading.Tasks; @@ -19,11 +17,11 @@ namespace MediaBrowser.Server.Implementations.Persistence public class SqliteUserRepository : IUserRepository { private readonly ILogger _logger; - + private readonly SemaphoreSlim _writeLock = new SemaphoreSlim(1, 1); - private SQLiteConnection _connection; - + private IDbConnection _connection; + /// <summary> /// Gets the name of the repository /// </summary> @@ -50,11 +48,12 @@ namespace MediaBrowser.Server.Implementations.Persistence /// <summary> /// Initializes a new instance of the <see cref="SqliteUserRepository" /> class. /// </summary> + /// <param name="connection">The connection.</param> /// <param name="appPaths">The app paths.</param> /// <param name="jsonSerializer">The json serializer.</param> /// <param name="logManager">The log manager.</param> /// <exception cref="System.ArgumentNullException">appPaths</exception> - public SqliteUserRepository(IApplicationPaths appPaths, IJsonSerializer jsonSerializer, ILogManager logManager) + public SqliteUserRepository(IDbConnection connection, IApplicationPaths appPaths, IJsonSerializer jsonSerializer, ILogManager logManager) { if (appPaths == null) { @@ -65,6 +64,7 @@ namespace MediaBrowser.Server.Implementations.Persistence throw new ArgumentNullException("jsonSerializer"); } + _connection = connection; _appPaths = appPaths; _jsonSerializer = jsonSerializer; @@ -75,12 +75,8 @@ namespace MediaBrowser.Server.Implementations.Persistence /// Opens the connection to the database /// </summary> /// <returns>Task.</returns> - public async Task Initialize() + public void Initialize() { - var dbFile = Path.Combine(_appPaths.DataPath, "users.db"); - - _connection = await SqliteExtensions.ConnectToDb(dbFile).ConfigureAwait(false); - string[] queries = { "create table if not exists users (guid GUID primary key, data BLOB)", @@ -120,7 +116,7 @@ namespace MediaBrowser.Server.Implementations.Persistence await _writeLock.WaitAsync(cancellationToken).ConfigureAwait(false); - SQLiteTransaction transaction = null; + IDbTransaction transaction = null; try { @@ -129,12 +125,12 @@ namespace MediaBrowser.Server.Implementations.Persistence using (var cmd = _connection.CreateCommand()) { cmd.CommandText = "replace into users (guid, data) values (@1, @2)"; - cmd.AddParam("@1", user.Id); - cmd.AddParam("@2", serialized); + cmd.Parameters.Add(cmd, "@1", DbType.Guid).Value = user.Id; + cmd.Parameters.Add(cmd, "@2", DbType.Binary).Value = serialized; cmd.Transaction = transaction; - await cmd.ExecuteNonQueryAsync(cancellationToken); + cmd.ExecuteNonQuery(); } transaction.Commit(); @@ -217,7 +213,7 @@ namespace MediaBrowser.Server.Implementations.Persistence await _writeLock.WaitAsync(cancellationToken).ConfigureAwait(false); - SQLiteTransaction transaction = null; + IDbTransaction transaction = null; try { @@ -227,12 +223,11 @@ namespace MediaBrowser.Server.Implementations.Persistence { cmd.CommandText = "delete from users where guid=@guid"; - var guidParam = cmd.Parameters.Add("@guid", DbType.Guid); - guidParam.Value = user.Id; + cmd.Parameters.Add(cmd, "@guid", DbType.Guid).Value = user.Id; cmd.Transaction = transaction; - await cmd.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false); + cmd.ExecuteNonQuery(); } transaction.Commit(); |
