diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-02-14 00:32:19 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-02-14 00:32:19 -0500 |
| commit | 88debcd967db189c037e4606dc685863f483a59f (patch) | |
| tree | 4216786dac65f0b765ffcc831c0a1b8114bc5313 /MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs | |
| parent | f6e3f6c8754d3525f4404b87fa35cd9660acd716 (diff) | |
update repository inheritance
Diffstat (limited to 'MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs | 57 |
1 files changed, 34 insertions, 23 deletions
diff --git a/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs b/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs index f883e6dbc..7302431e1 100644 --- a/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs +++ b/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs @@ -13,20 +13,11 @@ using System.Threading.Tasks; namespace MediaBrowser.Server.Implementations.Notifications { - public class SqliteNotificationsRepository : INotificationsRepository + public class SqliteNotificationsRepository : BaseSqliteRepository, INotificationsRepository { private IDbConnection _connection; - private readonly ILogger _logger; private readonly IServerApplicationPaths _appPaths; - private readonly SemaphoreSlim _writeLock = new SemaphoreSlim(1, 1); - - public SqliteNotificationsRepository(ILogManager logManager, IServerApplicationPaths appPaths) - { - _appPaths = appPaths; - _logger = logManager.GetLogger(GetType().Name); - } - public event EventHandler<NotificationUpdateEventArgs> NotificationAdded; public event EventHandler<NotificationReadEventArgs> NotificationsMarkedRead; public event EventHandler<NotificationUpdateEventArgs> NotificationUpdated; @@ -35,11 +26,17 @@ namespace MediaBrowser.Server.Implementations.Notifications private IDbCommand _markReadCommand; private IDbCommand _markAllReadCommand; + public SqliteNotificationsRepository(ILogManager logManager, IServerApplicationPaths appPaths) + : base(logManager) + { + _appPaths = appPaths; + } + public async Task Initialize() { var dbFile = Path.Combine(_appPaths.DataPath, "notifications.db"); - _connection = await SqliteExtensions.ConnectToDb(dbFile, _logger).ConfigureAwait(false); + _connection = await SqliteExtensions.ConnectToDb(dbFile, Logger).ConfigureAwait(false); string[] queries = { @@ -52,7 +49,7 @@ namespace MediaBrowser.Server.Implementations.Notifications "pragma shrink_memory" }; - _connection.RunQueries(queries, _logger); + _connection.RunQueries(queries, Logger); PrepareStatements(); } @@ -251,7 +248,7 @@ namespace MediaBrowser.Server.Implementations.Notifications } catch (Exception ex) { - _logger.ErrorException("Error in NotificationAdded event handler", ex); + Logger.ErrorException("Error in NotificationAdded event handler", ex); } } } @@ -275,7 +272,7 @@ namespace MediaBrowser.Server.Implementations.Notifications cancellationToken.ThrowIfCancellationRequested(); - await _writeLock.WaitAsync(cancellationToken).ConfigureAwait(false); + await WriteLock.WaitAsync(cancellationToken).ConfigureAwait(false); IDbTransaction transaction = null; @@ -311,7 +308,7 @@ namespace MediaBrowser.Server.Implementations.Notifications } catch (Exception e) { - _logger.ErrorException("Failed to save notification:", e); + Logger.ErrorException("Failed to save notification:", e); if (transaction != null) { @@ -327,7 +324,7 @@ namespace MediaBrowser.Server.Implementations.Notifications transaction.Dispose(); } - _writeLock.Release(); + WriteLock.Release(); } } @@ -359,7 +356,7 @@ namespace MediaBrowser.Server.Implementations.Notifications } catch (Exception ex) { - _logger.ErrorException("Error in NotificationsMarkedRead event handler", ex); + Logger.ErrorException("Error in NotificationsMarkedRead event handler", ex); } } } @@ -368,7 +365,7 @@ namespace MediaBrowser.Server.Implementations.Notifications { cancellationToken.ThrowIfCancellationRequested(); - await _writeLock.WaitAsync(cancellationToken).ConfigureAwait(false); + await WriteLock.WaitAsync(cancellationToken).ConfigureAwait(false); IDbTransaction transaction = null; @@ -396,7 +393,7 @@ namespace MediaBrowser.Server.Implementations.Notifications } catch (Exception e) { - _logger.ErrorException("Failed to save notification:", e); + Logger.ErrorException("Failed to save notification:", e); if (transaction != null) { @@ -412,7 +409,7 @@ namespace MediaBrowser.Server.Implementations.Notifications transaction.Dispose(); } - _writeLock.Release(); + WriteLock.Release(); } } @@ -420,7 +417,7 @@ namespace MediaBrowser.Server.Implementations.Notifications { cancellationToken.ThrowIfCancellationRequested(); - await _writeLock.WaitAsync(cancellationToken).ConfigureAwait(false); + await WriteLock.WaitAsync(cancellationToken).ConfigureAwait(false); IDbTransaction transaction = null; @@ -455,7 +452,7 @@ namespace MediaBrowser.Server.Implementations.Notifications } catch (Exception e) { - _logger.ErrorException("Failed to save notification:", e); + Logger.ErrorException("Failed to save notification:", e); if (transaction != null) { @@ -471,7 +468,21 @@ namespace MediaBrowser.Server.Implementations.Notifications transaction.Dispose(); } - _writeLock.Release(); + WriteLock.Release(); + } + } + + protected override void CloseConnection() + { + if (_connection != null) + { + if (_connection.IsOpen()) + { + _connection.Close(); + } + + _connection.Dispose(); + _connection = null; } } } |
